Hi, I'm one of the admin on a particularly large shop with several warehouses US(NYC/MICHIGAN) CAN AUS and UK. Each sale we run into a real problem where orders go through. Some orders have items from several warehouses. But we can only charge for shipping from one warehouse.
An example is a customer purchases items available in the Michigan Warehouse and the NYC warehouse. The shop sees the order and only charges shipping for one shipment when clearly two parcels will be shipped. This is an extreme feel bad when we have to ask the customer to pay for the second shipment after the order so we don't lose money on shipping these parcel for free.
Currently, we have a script enabled that should block items from a cart if there are items in another warehouse already in there. It works for the most part but when our shop is at the highest volume (1000's of orders in a short period of time) the script can not keep up. And even if it could this solution requires our customer to look for items, put them in their cart buy them and then begin a new order with items from a new warehouse if they want an item that isn't available in the first order. It's not a great customer experience. It works, but we know there has to be a better way.
Ideally, this solution would let our customers purchase all the items they want and pay for shipping from each warehouse, while realizing that each warehouse is a different origin location and charging the correct cost for shipping.
This seems like a very easy and normal problem, but we haven't been able to find anything on this issue that would solve the problem.
You should learn Amazon, only show products have stock in local country warehouse, in this case you can avoid the issue. If your products are from China, a Chinese fulfillment service might be an option for you too, although the delivery time might be longer. Sometimes you can not have both the fish and bear's paw, just find a better solution suitable for your business.