Order going through with no shipping cost

We have been using 2.0 for several months now and it's been working great. But just now we had an order go through with no shipping cost charged. It looks like the correct method was selected (Standard Shipping, which is the only choice for orders within the U.S.) but the shipping cost was $0, when it should have been $47.95. In trying to replicate the order (using the same items and the customer's address and everything) I cannot get a zero dollar shipping cost to happen. I can't even deselect the shipping method. It looks like it's all working as normal. I also checked the error log and there are no errors from today.

We talked to the customer, who said that there was a shipping cost showing "on the screen before," which could mean in the cart before going to checkout, or on the checkout page before submitting the order. Sorry she couldn't be more specific than that...

We do have some fairly complicated custom shipping logic, which I could share if that would be helpful. (It's quite long.)

I've tried to replicate it on my side as well - and I've been unable to. Looking at the transaction you mentioned, it was assigned the correct shipping rate based on the rate ID - but for some reason it ended up as $0 through the custom shipping rates.

Did the customer note what browser they were using when completing the purchase? That might be part of what is needed to replicate the issue.

I'm using the live rate shipping modification snippet (version 2.0.8, which I believe is the most current version), and for the U.S. only, I am replacing the live rates with tiered flat rates. I also have the automatic postal code lookup disabled, so customers have to type in a city, state, postal code and country to show the shipping options. I have FC.customLIveShipping.config = {autoSelect: true}; so that the top rate is automatically selected, and this works under normal checkout circumstances.

How the loophole works is this:1. I enter an international address (Leopold, Victoria, Australia 3224). It pulls up two USPS shipping options, with the top one selected. This is all good.2. I change the address to the United States (Seattle, WA 98119). It pulls up the correct tiered rate ("Standard Shipping"), but it does not automatically select it. Instead of TBD, the shipping and handling cost says $0.3. If I do not manually select the shipping option, I can still complete the transaction, but no shipping costs are charged.

If I change back to an international address (with live rates) it does correctly select the top one. Then if I go back to the U.S. (tiered flat rates), it's unselected.

I did set up a javascript warning for people with old versions of IE and Safari, which seemed to be the problem browsers before. This is definitely helping, so it's not as urgent of an issue as it was before. But if you have any ideas about what might be going wrong, I would love to get this fixed!

I'm sorry to hear you experienced an order come through with no shipping. Could I confirm with you the store this is for? Feel free to whisper it to me directly if you'd prefer to keep it private - you can do that by checking the "whisper" checkbox when replying, or by emailing our helpdesk.

Thanks for whispering those details. Reviewing the logs, the customer should have been charged $13.50 for their shipping costs, but for some reason it wasn't correctly saved as it should be. Unfortunately I'm not sure why that was - I wasn't able to replicate that kind of experience on my side.

That said - we do have a feature you can enable for your store that should prevent this kind of issue from happening again in the future. Specifically it's our shipping rate signing functionality - which creates a unique signature of each shipping rate from the data that was used to get the rates, and also the data of the returned rate. This allows our servers to validate that the rate received with the transaction matches exactly as it was displayed to the customer. It's primarily designed to prevent any possibility of a customer trying to alter a rate, but it would also prevent any potential edge cases like this.

To enable our shipping rate signing functionality, you can find a checkbox to enable it at the bottom of the "shipping" page of your store's FoxyCart administration. You can simply check that box and save the shipping page to enable it - you won't need to make other changes to your store.