Incorrect UPS Shipping Estimate During Checkout

I’ve run into a serious issue with international UPS rates in Shopify. The shipping price shown to customers during checkout is significantly higher than what it actually costs to purchase the UPS label through Shopify.

  • USPS and DHL rates match exactly between checkout and label purchase.
  • UPS rates at checkout are inflated compared to the final label cost.

This makes international shipping look more expensive than it really is, which hurts conversion.

I spoke with live chat support about this. Unfortunately, the agent insisted it must be a UPS problem and refused to create a ticket so that Shopify’s technical team could investigate. The issue seems to clearly be on Shopify’s side, since USPS and DHL are accurate and the discrepancy is only with UPS.

Additionally, I’ve confirmed that handling fee is not the issue here.

I have screenshots showing the difference between checkout pricing and actual label cost (using default packaging), but obviously can’t post here publicly since it contains private customer information.

Can someone from Shopify please escalate this internally so the right team can look into it? It’s a recurring issue and is directly impacting sales.

One screenshot that I can share here: USPS First Class is about the same price as UPS Worldwide Expedited to buy a label for, but UPS Worldwide Expedited appears much more to the customer during checkout.

This is something that’s come up before for other merchants too. while there’s no official fix yet, here are a couple of things you might consider:

  • Switch to using negotiated UPS rates by connecting your own UPS account instead of relying on Shopify’s default UPS rates, these can sometimes be more accurate and aligned with your actual label pricing.

  • Use a custom shipping rates app to take more control over what’s shown at checkout. You can set fallback or average rates based on your label costs and avoid surprises for your customers.

Hope this helps! And if it did, feel free to mark this as a solution so others can find it too :grin: