2 inventories charge twice for delivery

Hi,

I built a website for our brick and mortar store with Shopify.

I’m having some problems with how to integrate shipping from 2 inventories I created for the shop. I’ll try to explain on how I plan to work, so hopefully I get some advice.

I created one shop location that is connected to one of our suppliers warehouse through an app, so all the online shop inventory is linked to their inventory. So instead of having 2 items of each, my online shop shows I have hundreds of the items in stock. Nearly 15000 products compared to 1500 we physically stock. A person places an order on my website, I send it to the warehouse, next day I have the item ready to be shipped from my shop.

However, I also have dozens of other suppliers, and created a second location for the shop to show the items I have physically in hand in the shop, from all the suppliers. This will help customers to arrange pick-up from the shop within an hour, and later on add same day delivery too.

I have an issue where if a customer places an order, one item from each location, would charge the customer twice for the delivery. So, for example, if a customer adds to the basket an item that would come in next day from the warehouse, which is in 1st location, and a second item from the 2nd location, which I stock in the shop, it shows that they would have to pay the delivery twice.

Anyone has any suggestion on how to combine the delivery for the 2 locations, as they are both made for the same address, which is my shop.

Many thanks in advance

Hi, thanks for your reply.

I thought of two ways. First, make two variants of the same product so customer can select if it’s from online or it’s in-store, but that would still confuse customers.

Second one is to sync inventories from both locations. I did a test and if I have, lets say, one product in both locations, then shopify would use 1st location only, so only one charge for the delivery. For example, if customer adds an item from location 1, synced with the warehouse, then adds a second item that I stock in the shop, and I keep the same item in stock in both location 1 and location 2, then Shopify will select from only one location to fulfil the order.

I would love to hear your work around.

Thanks

@greenlandsonline Hi there,

This happens because Shopify automatically calculates shipping rates separately for each fulfillment location in an order. If items are fulfilled from two different locations, it adds the delivery charge twice.

Here are a few ways to fix it:

  1. Merge the two locations into one for checkout

    • If both locations ship from the same address, you can temporarily use a single location for online fulfillment.

    • Keep the warehouse linked via app, but set the “ship from” location to your shop address.

  2. Use a shipping app to combine rates

    • Apps like Advanced Shipping Rules, Better Shipping, or Multi-Carrier Shipping Label let you combine multiple locations into one shipping rate at checkout.

    • This ensures customers only pay once even if products come from multiple sources.

  3. Use local pickup or local delivery for in-store items

    • For items stocked at your shop, enable Local Pickup or Local Delivery under your shipping settings.

    • That way, those products don’t add extra delivery charges.

  4. Contact Shopify Support if you’re using a custom fulfillment app. They can confirm whether the app setup is forcing separate rate calculations.

Kindly check it out

One set of items and do the inventory-sync on the backend with automations.

Otherwise you need set A to also be duplicated in set B.
When ever something from set A is put in the cart you need to make is so it’s duplicate from set B is instead put in the cart.

After that it’s moving into much more advanced things like carrier-service-apis or custom shopify-functions etc

Shopify treats each location as an independent fulfilment centre. When an order contains items that will ship from more than one location, the platform simply adds up the shipping rate from each location – there isn’t a built‑in way to merge those rates.

If you want to offer a single delivery fee when a basket contains items from your warehouse feed and your in‑store stock, you have a few options:

  • Use a single shipping origin: The simplest workaround is to have all items ship from one location (your shop) and treat the supplier feed as virtual inventory. You can still sync quantities from your supplier, but set the shipping location for those products to your store so that Shopify only calculates one shipping rate.

  • Custom shipping profiles or a rate app: Third‑party apps like Advanced Shipping Rules, Bespoke Shipping, Better Shipping or Starshipit let you create complex rules for multi‑origin orders. They can detect when items come from multiple locations and return a single combined rate or even the highest rate only. These apps work around the default stacking behaviour.

  • Local pickup/delivery for store stock: Since customers can pick up items you physically hold, consider offering a free Local Pickup method for those products. Then the only shipping charge would come from the warehouse item. There are also local delivery apps that can set flat rates for same‑day delivery from your shop.

Unfortunately there isn’t a native way to combine rates across locations in Shopify at the moment. Consolidating your shipping origin or using a rate‑management app is usually the best solution.

Thank you everyone for your help.

I set both inventory locations as my shop address, so I don’t know why it adds two charges.

I will research your suggestions on how to combine the inventories into one at checkout, if not I’ll look into the apps you recommended.

@greenlandsonline Unfortunately, Shopify still calculates separate shipping charges when items are fulfilled from different locations, even if those locations share the same address. While there isn’t a complete fix for this within Shopify’s current setup, what my app Mutlilocation stock info can do is make stock availability much clearer for your customers. By showing the total inventory for shipping online and store-specific inventory for local pickup, it helps guide customers to make choices that reduce confusion and lessen the chance of split shipping fees at checkout.
It’s not a perfect solution for Shopify’s shipping rules, but it does create a much smoother inventory and shopping experience for both you and your customers. If you’d like to see how this works or have any questions about setup, I’m happy to help!

Hi, can you please explain on how to treat one inventory as a virtual inventory?

Thanks

Hi,

Can you please explain on how you merge the 2 inventories into one at checkout please?

Many thanks

Shopify calculates shipping separately for each inventory location, which is why customers get charged twice if items come from both your store and supplier.
You’ve got two practical routes:

Option 1: Native Shopify Workaround (Basic)

If the supplier always ships stock to you (and never directly to customers):

  • You can disable fulfilment from the supplier’s location in Shopify (uncheck “Fulfil online orders from this location”).

  • Keep it only as a stock reference using the connected app.

  • That way, Shopify will only use your store location for rate calculation — meaning customers will see one delivery charge.

This setup means Shopify won’t consider the supplier as a ship-from point, even though inventory data syncs in real time.

Option 2: Shopify Shipping Solution (Advanced & Scalable)

If you want to keep both locations active (so the supplier can fulfil some orders directly later), then a Shopify shipping app like PluginHive’s Multi Carrier Shipping Label app can help.

Here’s how it resolves the double-charge issue:

  • The app allows you to define custom shipping rules that calculate accurate rates even when products come from multiple inventories, ensuring customers always see a single, correct shipping cost.

  • It also automates label generation for whichever location fulfils the order later, so operationally, it stays seamless.