I'm stucked on the 4th step on one page checkout, I can't continue to next step on shipping to payment.
The button reacts, ajax call is fine, returned content seems perfect, but it doesn't execute or fill on HTML.
I was read about that issue on more topics like the following:
- Magento V1.8 one page checkout not loading payment information
- https://community.magento.com/t5/Technical-Issues/One-Page-Checkout-stuck-on-step-4-payment/m-p/21868#M1903
- Cant continue past shipping when in Checkout
- Magento 1.9 checkout stuck on shipping methods
But no success. I also read and try another posts, but the same result.
The problem is that when I click continue on shipping information, the payment is not loaded but ajax request do.
JSON returns the following:
"goto_section": "payment",
"update_section": {
"name": "payment_method",
"html": '<dt id="dt_method_cashondelivery"> <input id="p_method_cashondelivery" value="cashondelivery" type="radio" name="payment[method]" title="Contrarreembolso" onclick="payment.switchMethod('cashondelivery')" class="radio" /> <label for="p_method_cashondelivery">Contrarreembolso </label> </dt> <dt id="dt_method_purchaseorder"> <input id="p_method_purchaseorder" value="purchaseorder" type="radio" name="payment[method]" title="Purchase Order" onclick="payment.switchMethod('purchaseorder')" class="radio" /> <label for="p_method_purchaseorder">Purchase Order </label> </dt> <dd id="dd_method_purchaseorder"> <ul class="form-list" id="payment_form_purchaseorder" style="display:none;"> <li> <label for="po_number" class="required"><em>*</em>Número de la orden de compra</label> <div class="input-box"> <input type="text" id="po_number" name="payment[po_number]" title="Número de la orden de compra" class="input-text required-entry" value="" /> </div> </li></ul> </dd> <script type="text/javascript"> //<![CDATA[ payment.init(); //]]></script>'
}
Seems that payment.init()
doesn't execute never because it doesn't enter on debugger on that function, but if I execute payment.init()
manually on console the result is the same even entering on the javascript function successfully.
Doesn't matter if I change checkout.xml
, info.phtml
, methods.phtml
, and more files, the problem is the same (all seems correct, no errors, good information retrieving but not success on step change).
If I change to the default template, the error persists, but the right column with the order resume updates correctly, when if I configure my custom template it doesn't, but the step to request payment information is always unaccessible.
Please, can you put some light on this?
Thank you.
EDIT
I can add more information. On /var/log/exceptions.log
I can see:
exception 'Mage_Core_Exception' with message 'El tipo de bloque es inválido: ' in /home/marcosprog/httpd/foruzz/web/app/Mage.php:595
Stack trace:
#0 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('El tipo de bloq...')
#1 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array)
#2 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'root')
#3 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'root')
#4 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#6 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#7 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Checkout/controllers/OnepageController.php(212): Mage_Core_Controller_Varien_Action->loadLayout()
#8 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->indexAction()
#9 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#10 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 /home/marcosprog/httpd/foruzz/web/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#12 /home/marcosprog/httpd/foruzz/web/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#13 /home/marcosprog/httpd/foruzz/web/index.php(83): Mage::run('', 'store')
#14 {main}
But I don't know what and why the block is invalid, so shipping loads fine and also payment json.
Note
Note that the payment information loads fine, if I remove display: none
from <div id="checkout-step-payment">
I can see all options and fine, so I guess there is a problem on the javascript that show this part of the page.
Solved
I add an answer and will be accepted today, but if someone has a better solution I will accept it as the correct answer.