Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The shipping_method step hash is calculated including rates that have been deleted #9

Open
jdukeukpos opened this issue Mar 23, 2016 · 0 comments

Comments

@jdukeukpos
Copy link

The saveBilling(others?) action always reloads the shippingMethods html because the second stepHash which is used for comparison contains deleted rates.

EcomDev_CheckItOut_OnepageController::saveBillingAction()
..
$result = $this->getOnepage()->saveBilling($data, $customerAddressId);

causes the current rates for the address to be deleted and new ones inserted.

In EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash()
..
in the loop over the rates collection I believe that it should do the following at the start:
if ($shippingRate->isDeleted()) {
continue;
}

(see Mage_Sales_Model_Quote_Address::getAllShippingRates() - or this function could be used instead)

see stack traces below:

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
shippingAddressId: 298

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
Array
(
[0] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[1] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[2] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[3] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[4] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[5] => Economy Delivery - Economy Delivery
)
#0 app/code/community/EcomDev/CheckItOut/Model/Hash/Quote/Abstract.php(70): EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate->getDataForHash()
#1 app/code/community/EcomDev/CheckItOut/Model/Hash.php(48): EcomDev_CheckItOut_Model_Hash_Quote_Abstract->getHash()
#2 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(131): EcomDev_CheckItOut_Model_Hash->getHash(Object(Mage_Sales_Model_Quote))
#3 app/code/core/Mage/Core/Controller/Varien/Action.php(407): EcomDev_CheckItOut_OnepageController->preDispatch()
#4 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('saveBilling')
#5 app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#6 app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#7 app/Mage.php(684): Mage_Core_Model_App->run(Array)
#8 index.php(122): Mage::run('', 'store')
#9 {main}

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
shippingAddressId: 298

2016-03-21T17:26:52+00:00 DEBUG (7): /checkout/onepage/saveBilling/
EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate::getDataForHash:
Array
(
[0] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[1] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[2] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[3] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[4] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[5] => flatrate_flatrate;Click and Collect;Collect your order from Stockport;0.00
[6] => xxx_economy_ukmainland;Economy Delivery;Economy Delivery;8.50
[7] => xxx_express_ukmainland;Express Delivery;Express Delivery;12.00
[8] => premiumrate_2-3_Day_Delivery_;Select Shipping Method;2-3 Working Day Delivery_;8.50
[9] => premiumrate_Next_Day_Delivery_;Select Shipping Method;Next Working Day Delivery_;12.00
[10] => Economy Delivery - Economy Delivery
)
#0 app/code/community/EcomDev/CheckItOut/Model/Hash/Quote/Abstract.php(70): EcomDev_CheckItOut_Model_Hash_Quote_Address_Rate->getDataForHash()
#1 app/code/community/EcomDev/CheckItOut/Model/Hash.php(48): EcomDev_CheckItOut_Model_Hash_Quote_Abstract->getHash()
#2 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(409): EcomDev_CheckItOut_Model_Hash->getHash(Object(Mage_Sales_Model_Quote))
#3 app/code/community/EcomDev/CheckItOut/controllers/OnepageController.php(362): EcomDev_CheckItOut_OnepageController->_addHashInfo(Array)
#4 app/code/core/Mage/Core/Controller/Varien/Action.php(418): EcomDev_CheckItOut_OnepageController->saveBillingAction()
#5 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('saveBilling')
#6 app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#7 app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#8 app/Mage.php(684): Mage_Core_Model_App->run(Array)
#9 index.php(122): Mage::run('', 'store')
#10 {main}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant