Shopify Shipping Rate Different from WooCommerce UPS for Same Product, Weight & Quantity

I’m facing a shipping rate calculation issue between Shopify and WooCommerce and would appreciate some guidance.

For example, if a product weighs 1 lb and we order 1 quantity, WooCommerce UPS shows a minimum shipping rate of around $15, while Shopify shows around $7 for the same product and destination.

I’m passing the length, width, height, and weight through Shopify product metafields.

We also tried the Boxify app, which gives a nearly accurate rate in many cases. However, it sometimes behaves unexpectedly:

  • Increasing the product quantity can result in a different/unexpected shipping rate.

  • Sometimes the calculated shipping cost is higher than the actual order value.

  • The rates can differ significantly from the WooCommerce UPS calculation.

I’m trying to understand how Shopify is calculating the carrier rate and how I can make it match the WooCommerce UPS calculation more closely.

Has anyone faced a similar issue or can suggest the correct approach?

One likely mismatch is that the two checkouts are not sending the same package request to UPS.

Shopify’s current documentation says the store default package is used for checkout calculations when a product has no assigned package. It also notes that a product/variant package override applies only to single-item orders; for multiple items, the store default package is used. Product dimensions stored only in metafields won’t affect Shopify’s native carrier request unless Boxify reads those metafields and returns its own calculated rate. That could explain why the result changes unexpectedly when quantity increases.

Before adjusting the rate, I would run a small comparison matrix for quantity 1, 2, and 3 while keeping all of these identical:

  • origin and destination (including residential/commercial status)
  • UPS service level
  • connected UPS account versus Shopify-provided rates
  • product weight and package weight
  • outside package dimensions
  • number of packages chosen by the packing logic
  • any handling markup or discount

Capture the Shopify-native rate and the Boxify rate separately. If WooCommerce is using a different UPS account, service, package, or retail/negotiated rate, the values are not directly comparable even for the same SKU.

Shopify references: packages used at checkout and testing shipping rates.

Which rate source is currently shown at Shopify checkout: Shopify’s UPS rate, your connected UPS account, or Boxify’s app-calculated rate? And for quantity 2+, does Boxify pack everything into one box or split it?

Worth checking whether the two numbers even come from the same rate card, because if the Shopify side is quoting Shopify Shipping you are comparing Shopify’s negotiated UPS account against your own account or published rates in Woo, and that on its own can explain 7 versus 15 for an identical parcel.

The detail that will save you the most time while testing is the cache on carrier service rates: Shopify keeps a successful response for 15 minutes, keyed on variant ids and quantities, the default box weight and dimensions, the carrier service id, and the origin and destination, so changing a metafield or a setting inside Boxify and retesting the same cart can hand you the old rate instead of the effect of your change.

The quantity jumps and the rate coming out above order value both look like dimensional weight on an oversized default box, where billable weight becomes length times width times height over the divisor once the packer moves up a size.