Why Shopify charges shipping twice when an order ships from two locations
Short answer: When no single location can fulfil the whole cart, Shopify works out a rate for each part and adds them together. With a flat rate in one location group, the customer pays that flat rate once. With weight-based, carrier-calculated or app rates, the parts are combined, which customers read as paying shipping twice.
What Shopify does, step by step
- Shopify tries to fulfil the order from one location, following your fulfilment priority.
- If one location can’t, the cart is split between locations.
- For a flat rate in the same location group, Shopify charges it once. Shopify’s example: a $5 flat rate and two locations needed, the customer pays $5.
- For weight-based, carrier-calculated and app rates, Shopify combines the rates for each part. Rates with the same name are added together; if names differ, only the cheapest options are added and shown as “Shipping”.
Fixes to try first (free)
- Check fulfilment priority so one location ships the whole order whenever it has the stock.
- Put locations in one location group in your shipping profile and use flat rates if you can live with them.
- Use the same rate names across profiles so combined rates stay readable.
- Keep stock where orders ship from. A transfer before a busy weekend beats splitting parcels.
When the free fixes don’t fit
If you need carrier or weight-based pricing and ship from several warehouses, the combined rate is how Shopify is designed to work. The alternative is a rate app that prices the whole cart once and returns one set of options.
Where Shelfworks fits: Mergerate
Mergerate is a rate app for exactly this case. It connects to your store as a carrier service, prices your own rates on the whole cart, charges them on one shipment and returns the same options at $0 on the others, with a label you choose.

- Rates you define: flat prices, free over a subtotal, subtotal and weight ranges, countries and delivery estimates.
- Free-shipping thresholds count the whole order, not each location’s share.
- If nothing matches or something goes wrong, it returns no rate, so checkout falls back to your other rates.
- Needs third-party carrier-calculated shipping on your plan. Shopify includes it on Advanced and Plus; Shopify (Grow) plan stores can add it.
Status: Not on the Shopify App Store yet. Want to know when it’s available? Email support@shelfworks.app with the subject “Mergerate”.