문제

I am in the process of upgrading a Magento 1.8.1 installation to ver 1.9.3.10 on a development server with PHP 7.0 using the blank template. Everything seems to work fine except during checkout, if I select either the Free Shipping method, or the UPS Free method method with minimum order amount set.

The checkout process proceeds normally until I submit the payment info in step 5, either Cash on Delivery or Paypal Payflow with Express Checkout (sandbox). If I try to change the shipping method in the right column "Your Checkout Progress" at that point, the free shipping method is not available, and the UPS Free method shows the normal shipping quote amount for that method (ground).

If I just go through the checkout process without changing anything: 1) If I chose the UPS free method with order amount above the threshold, where it showed $0 cost initially, it shows the normal quote amount (not free) for that method in order review, step 6. 2) If I chose the magento free shipping method, I receive an alert "Please specify a shipping method." and transaction failed email. Then I have the following error in my exception.log:

2018-12-22T00:11:02+00:00 ERR (3): 
Mage_Core_Exception: Please specify a shipping method. in MAGENTO_ROOT/app/Mage.php:595
Stack trace:
#0 MAGENTO_ROOT/app/code/core/Mage/Sales/Model/Service/Quote.php(303): Mage::throwException('Please specify ...')
#1 MAGENTO_ROOT/app/code/core/Mage/Sales/Model/Service/Quote.php(222): Mage_Sales_Model_Service_Quote->_validate()
#2 MAGENTO_ROOT/app/code/core/Mage/Sales/Model/Service/Quote.php(238): Mage_Sales_Model_Service_Quote->submitNominalItems()
#3 MAGENTO_ROOT/app/code/core/Mage/Checkout/Model/Type/Onepage.php(819): Mage_Sales_Model_Service_Quote->submitAll()
#4 MAGENTO_ROOT/app/code/core/Mage/Checkout/controllers/OnepageController.php(599): Mage_Checkout_Model_Type_Onepage->saveOrder()
#5 MAGENTO_ROOT/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->saveOrderAction()
#6 MAGENTO_ROOT/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('saveOrder')
#7 MAGENTO_ROOT/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#8 MAGENTO_ROOT/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#9 MAGENTO_ROOT/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#10 MAGENTO_ROOT/index.php(83): Mage::run('', 'store')
#11 {main}

Other than that I have no other errors, including in my console or system.log

I can checkout with no problems with PHP 5.6.

도움이 되었습니까?

해결책

The problem seemed like it was related to session handling. After seeing other people having session related errors before installing the PHP 7.2 patch, I installed it, and it solved the problem. So in my case the PHP 7.2 patch is required to run Magento CE 1.9.3.10 on ANY version of PHP 7, including 7.0 and 7.1, despite what the documentation says.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top