简体   繁体   中英

magento 1.9 onepage checkout stuck on shipping method

I have a problem on my Magento 1.9 site with accessshop theme installed. I am facing while checking out the product the one-page stuck on shipping method. I have used firebug to analyze the ajax request error

POST 
XHR 
http://localhost/checkout/onepage/saveShippingMethod/ [HTTP/1.1 200 OK 477ms]
POST 
XHR 
http://localhost/checkout/onepage/saveShippingMethod/ [HTTP/1.1 200 OK 473ms]
POST 
XHR 
http://localhost/checkout/onepage/saveShippingMethod/ [HTTP/1.1 200 OK 486ms]

Any suggestions?

Response headers

Cache-Controlno-store, no-cache, must-revalidateConnectionKeep-AliveContent-Length0Content-Typetext/html; charset=UTF-8DateSun, 06 Aug 2017 11:15:37 GMTExpiresThu, 19 Nov 1981 08:52:00 GMTKeep-Alivetimeout=5, max=100Pragmano-cacheServerApache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.4Set-Cookiefrontend=n8402r130lcvu9nih5mc0m77m4; expires=Sun, 06-Aug-2017 12:15:38 GMT; Max-Age=3600; path=/; domain=35.154.241.195; HttpOnlyX-Content-Type-OptionsnosniffX-Frame-OptionsSAMEORIGINX-Powered-ByPHP/7.0.4X-XSS-Protection1; mode=block

Response

Empty

Open this file /app/design/frontend/base/default/template/checkout/onepage/payment.phtml and replace below code:

<fieldset>
    <?php echo $this->getChildHtml('methods') ?>
</fieldset>
with (add id to fieldset)

<fieldset id="checkout-payment-method-load">
    <?php echo $this->getChildHtml('methods') ?>
</fieldset>

I had this "stuck on shipping method" issue, using a custom theme. I don't have a huge amount of magento experience so it was a bit frustrating. No PHP errors, no JS errors, checkout-payment-method-load ID was there.

Turns out I needed to include the formkey, which must be something included in a new supee update. My advise to anyone would be (just in case this type of scenario arises in a different situation or future update) check the original files and compare with your active theme. Originals in this case are located at /app/design/frontend/base/default/template/checkout/onepage. Your theme location will obviously vary, but mine was /app/design/frontend/default/theme/template/checkout/onepage

So my shipping_method.phtml needed to end with these two lines (note: formkey!)

    <?php echo $this->getBlockHtml('formkey') ?>
</form>

AND my payment.phtml needed to have this form key too, here's the snippet

<fieldset id="checkout-payment-method-load">
         <?php echo $this->getChildHtml('methods') ?>
</fieldset>
<?php echo $this->getBlockHtml('formkey') ?>

Hope this helps someone save some time!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM