Fulfillable inventory + Stock per Geo + Shopify Markets

Hi,

I’m using Shopify Markets with multiple warehouses (CN + US) and an app to hide out-of-stock variants.

What I expect:

  • US customers (US market) should only see stock from the US warehouse.

  • CN customers (worldwide market) should only see stock from the CN warehouse.

  • The product must keep a single URL across markets.

The issue:

  • For one product, this works correctly (each market only shows its local stock).

  • But for most products, US visitors either:

    • Still see the product even when the US warehouse has no inventory, or

    • See the combined inventory from both warehouses.

Example:

  • CN has sizes S + M.

  • US has size L.

  • A US customer should only see L, but instead sees S + M + L.

Questions:

  • Why does Shopify treat products differently in this setup?

  • Is this caused by inventory source assignments, shipping profiles, or market configuration?

  • What’s the correct setup so each market only shows its own stock while keeping a single product URL?

If this requires a code solution, I’d appreciate some guidance on the best direction.

Thanks!

1 Like

Hi there,

This behavior usually happens because of how Shopify handles multi-location inventory + Markets visibility. A few things to check:

  • Inventory source assignment – make sure each product/variant is only stocked in the correct location (US vs CN) and that the locations are prioritized properly under Settings → Locations.

  • Shipping profiles – sometimes if both locations are allowed to ship to the same market, Shopify may combine inventory across them. You’ll want to restrict each market to its intended fulfillment location.

  • Market configuration – confirm that the US Market is only linked to the US location, and the Worldwide/CN Market is only linked to the CN location.

The reason one product works while others don’t is often due to inconsistent location assignments or a variant still being “available” in both locations.

If you need this to work strictly (e.g., hide CN stock from US customers but still keep a single product URL), you’ll likely need a combination of:

  1. Correct location/market assignment in Shopify Admin.

  2. An app or custom code snippet to hide variants that don’t belong to the customer’s market if Shopify’s native settings don’t fully cover your use case.

For exact setup guidance, I’d recommend reviewing your Shipping Profiles + Market → Location mapping first — that’s usually where the mismatch happens.

Best regards,
Sinh Developer, from Tipo

Hey Sinh, thanks for your fast and details reply!

I didn’t note an important issue -

I have the same items stocked in both locations… I can’t separate them into two different products.

Does this make a different to this case?

Hey, thanks for clarifying — yes, that makes a big difference.

If the same product is stocked in multiple locations, Shopify’s default behavior is to aggregate inventory across all assigned locations for that product. That’s why US visitors might still see CN sizes or combined stock, even if you’re using Shopify Markets.

A few options/workarounds here:

  1. **Location restriction per Market
    **

    • You’ll need to ensure that your US Market only fulfills from the US location, and the Worldwide/CN Market only fulfills from the CN location.

    • But since the product is the same in both warehouses, Shopify still considers the total stock available unless you explicitly block one location from serving that Market.

  2. **Inventory publishing
    **

    • In your product settings, check “Publishing” by Market. Sometimes products are marked available in both Markets → so Shopify shows them, regardless of location.
  3. **Apps / custom logic
    **

    • If you want to keep a single product + single URL, but strictly limit variants by Market/location, you usually need an app or a bit of custom code. The app that “hides out-of-stock variants” might not be enough, because the variants aren’t really out of stock — they exist in another location.

    • A common approach is using Geolocation + Liquid code or storefront filtering to hide variants that don’t belong to the customer’s assigned Market.

So in short:

  • If a product exists in both CN + US warehouses, Shopify will always try to show the combined stock unless you isolate fulfillment at the Market level or add custom logic.

  • Native Shopify settings alone may not cover this edge case fully if you need strict separation.


Sinh – Developer at Tipo

1 Like

Shopify doesn’t automatically hide variants by warehouse for each market, so you’ll need custom code or an app to handle this. Double-check your shipping profiles and market settings—make sure the US market only ships from the US warehouse, and CN/worldwide only ships from CN. If both warehouses are allowed for a market, Shopify will show all stock.

If you want customers to only see stock available in their region, you can use my app like Multilocation Stock Info to show warehouse-specific inventory on the product page. This can help keep things clear for customers.

1 Like

Thank you ! I will check it out!

Just verifying, as this I couldn’t find a specific reference for it - will the app show only available products to the variant level?

(From what i understand, i’m going for the basic paln, right?)

Yes it shows available products to the variant level. Please DM me and I will get it enabled for you in basic plan

1 Like