Passer la Commande échoue dans Magento OnePage Checkout

J'ai une boutique Magento qui a été converti en un "au temps" type de magasin, et le processus de commande est cassé. J'ai essayé de débogage, mais a frappé un mur, principalement en raison de ma compréhension limitée de Magento.

Sur le saveOrder étape, en cliquant sur "passer la Commande", la page indique "envoi d'informations de commande, le message s'efface et le shopper est toujours sur la page de vérification de Commande.

Je l'ai analysé avec Firebug et HttpFox, et je peux voir les informations de commande est envoyé

(Request-Line)  POST /checkout/onepage/saveOrder/ HTTP/1.1
Host    www.domainname.com
User-Agent  Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0
Accept  text/javascript, text/html, application/xml, text/xml, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
X-Requested-With    XMLHttpRequest
X-Prototype-Version 1.6.0.3
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
Referer https://www.domainname.com/checkout/onepage/
Content-Length  178
Cookie  frontend=cd60252d28cd115d4096cb2bb5b6a043
Pragma  no-cache
Cache-Control   no-cache

Publier des Données montre toutes les informations nécessaires:

payment[method] authorizenet
payment[cc_type]    VI
payment[cc_number]  4111111111111111
payment[cc_exp_month]   5
payment[cc_exp_year]    2012
payment[cc_cid] 987

Mon problème semble similaire à ce post:
http://fishpig.co.uk/magento-tutorials/magento-checkout-error-undefined-javascript-alert

mais je ne suis pas un "Undefined" alerte, j'ai donc ajouté l'instruction "else" ci-dessous:

nextStep: function(transport){
    if (transport && transport.responseText) {
            alert(transport.responseText);
        try{
            response = eval('(' + transport.responseText + ')');
        }
        catch (e) {
            response = {};
        }
        if (response.redirect) {
            location.href = response.redirect;
            return;
        }
        if (response.success) {
            this.isSuccess = true;
            window.location=this.successUrl;
        }
        else{
            var msg = response.error_messages;
            if (typeof(msg)=='object') {
                msg = msg.join("\n");
            }
            alert(msg);
        }

        if (response.update_section) {
            $('checkout-'+response.update_section.name+'-load').update(response.update_section.html);
            response.update_section.html.evalScripts();
        }

        if (response.goto_section) {
            checkout.gotoSection(response.goto_section);
            checkout.reloadProgressBlock();
        }
    } else {
        alert('transport.responseText');
        }
},

Je suis la JS alerte sans texte, de sorte qu'il ressemble de transport.reponseText est vide. Les principales références à vide texte de la réponse que j'ai trouvé semble être liée à l'origine de la politique, je ne pense pas que s'applique, parce que mon AJAX post et de www.domainname.com.

Quand je l'appelle la saveOrder fonction directement dans le navigateur, je reçois une réponse valide:

https://www.domainname.com/checkout/onepage/saveOrder
{"succès":false,"erreur":true,"error_messages":"numéro de carte de Crédit incompatibilité avec la carte de crédit de type"}

et HTTPFox montre que je suis un 200 de réponse de l'appel Ajax, mais le responsetext est tout simplement vide. Je trouve pas de PHP erreurs ou des erreurs dans Magento exceptions journal. La seule chose que je suis la recherche qui pourrait être liée à "Headers already sent" dans Magento journal système:

</pre>
2011-09-03T12:14:21+00:00 DEBUG (7): HEADERS ALREADY SENT: <pre>[0] wwwroot/app/code/core/Mage/Core/Controller/Response/Http.php:50
[1] wwwroot/lib/Zend/Controller/Response/Abstract.php:726
[2] wwwroot/app/code/core/Mage/Core/Controller/Response/Http.php:82
[3] wwwroot/app/code/core/Mage/Core/Controller/Varien/Front.php:169
[4] wwwroot/app/Mage.php:459
[5] wwwroot/index.php:67
</pre>

Quelqu'un aurait-il des suggestions pour quelle autre raison le responseText est de retour à vide?

Êtes-vous à l'aide des instructions d'impression, de débogage dans le php? Que pourrait être une cause pour les "Headers already sent" dans le système.journal. Utilisation Mage::log() au lieu de déboguer le processus magebase.com/magento-tutorials/... .
J'ai été en utilisant Mage::log, mais d'autres développeurs ont travaillé sur ce processus, donc je vais vérifier pour toutes les instructions d'impression.
Attendre, à part le problème avec certains contenus envoyés avant les en-têtes, qu'attendez-vous qui se passerait si "numéro de carte de Crédit incompatibilité avec la carte de crédit de type"?
J'ai débogué un substituée à la caisse avant et remarqué que chaque fois que le one page checkout ne parvient pas à passer à l'étape suivante dans le processus, il est généralement quelque chose dans la coutume de code de module. Alors vous pouvez regarder dans le code de tous les modules dans votre système, notamment en substitution de la procédure de paiement.
David, qui était le problème. J'avais écarté cette possibilité à l'origine, parce que j'ai pensé à désactiver tous les modules personnalisés dans l'interface d'admin fait handicapés eux, plutôt que de "désactivation de leur sortie". Quoi que cela signifie. Une fois que je me rends compte que j'ai mis <>False</Actif> dans la configuration du module et de la caisse travaillé. J'ai été en mesure de résoudre le module personnalisé questions, donc je suis à la clôture de cette question. Merci pour les commentaires.

OriginalL'auteur Canuteson | 2011-09-03