Somewhat recently (maybe one or two months ago), I noticed all of our shipping rates began to differ from what the customer's had actually paid for. More often than not, we were paying a bunch more for shipping than what the customer paid. This is no good!
I found a setting that allowed you to set a default package size to be used for when calculating shipping at checkout. This had somehow gotten set as a business size envelope, so shipping rates for a 5lb order was laughably low compared to the ~$20 (or more) that it should have been charging the customer.
So I adjusted that setting to use one of the boxes we typically ship products in. This helped, but now shipping charges for small items that would normally fit in an envelope are artificially high.
Shipping used to be pretty much dead on, what the hell happened, Shopify?? You're killing my profit margin!
Shopify only offers one box size to be sent off for live rate calculations, regardless of the size of the actual order. The problem with using Shopify’s single box size is that you will be undercharging for some orders, as in your case, and you will be responsible for paying out of pocket for the additional shipping cost. To handle this well, you can use the Multi Carrier Shipping Label app, which helps you handle this with ease. With the box packing method in the app, you can set up different packages for your products based on their weight & dimensions.
So, whenever your customer places an order, the app automatically chooses the right box and calculates the rates accordingly. Also, with the app, you can print labels, and also automate the tracking process.