1. I'm posting this as a bug because I still don't think the current solution is best.
The catalog/controller/checkout/shipping.php page uses a session check to decide whether or not to lookup shipping rates. If the rates were looked up once, and the cart hasn't changed, it doesn't look them up again. This is good on paper, but is extremely confusing for store owners when they are trying to setup their shipping rates. They are not likely aware of the session issue, so they keep reloading the shipping page and nothing changes.
So I think that either needs to be removed OR at least a new configuration in the setting area for "Save Shipping to Session: YES/NO" so that can be disabled easily for testing and only set to YES when going live.
2. The other "proper" fix that is needed still is moving the POST check up higher in the code. It should come BEFORE the model load to prevent unnecessary loading of the model file and any other variables. It should be moved to right under this code:
Code: Select all
if (!$this->session->data['shipping_address_id']) {
$this->redirect($this->url->https('checkout/address/shipping'))
}