Например, Magento может не переходить на следующий шаг оформления заказа, в то же время не указывая причину сбоя и не оставаляя записей в своих журналах.
Чтобы провести диагностику подобных ситуаций, примените (временно) две заплатки к программному коду:
1)
Найдите метод test класса Validation (в файле js/prototype/validation.js)
Это длинный метод примерно следующего вида:
test : function(name, elm, useTitle) { var v = Validation.get(name); var prop = '__advice'+name.camelize(); try { if(Validation.isVisible(elm) && !v.test($F(elm), elm)) { ... } else { ... } } catch(e) { throw(e) }
Добавите в блок catch дополнительную диагностику:
test : function(name, elm, useTitle) { var v = Validation.get(name); var prop = '__advice'+name.camelize(); try { if(Validation.isVisible(elm) && !v.test($F(elm), elm)) { ... } else { ... } } catch(e) { alert ("exception: " + e.message); alert (e.stack.toString ()); throw(e) }
2)
Найдите метод nextStep класса Checkout (в файле skin/frontend/base/default/js/opcheckout.js)
Найдите там блок:
var msg = response.error_messages; if (typeof(msg)=='object') { msg = msg.join("\n"); } alert(msg);
добавьте после него:
alert (transport.responseText);
Не забывайте, что программный код на JavaScript активно кешируется браузерами, поэтому просто обновить файлы недостаточно - надо дополнительно очистить кеш браузера от старого кода.