New: two-way inventory sync across Zoho warehouses — see how it works
Inventory Sync

Map Shopify Locations to Zoho Warehouses (Multi-Location Setup)

Multi-location inventory only works when every Shopify location maps to a Zoho warehouse. Learn how to map, auto-create warehouses, and keep per-location stock accurate.

Why mapping comes first

Inventory, product, and order sync all depend on one piece of setup that is easy to skip: location mapping. A stock number only means something when it is tied to a place. If the connector does not know which Zoho warehouse a Shopify location belongs to, it cannot put stock where it should go — and a multi-location store ends up with one misleading combined number that hides where things actually are.

This is why Zync treats mapping as a prerequisite, not an option. Before product sync, before order sync, and before inventory sync, every Shopify location has to point at a Zoho warehouse. The connector uses that map on almost every write it makes: when it records where an order's stock came out of, when it pushes an inventory adjustment, and when it decides which warehouse a quantity belongs to. Skip the map and those writes have nowhere correct to land.

The good news is that mapping is a one-time setup for most stores, and Zync gives you shortcuts for the two most common situations — a single warehouse, and no warehouses created yet. The rest of this guide walks through how Shopify and Zoho think about locations differently, how to do the mapping on the Connection page, and how to verify it actually works before you flip sync on.

How Shopify locations and Zoho warehouses differ

Shopify and Zoho both track "where stock lives," but they model it differently, and the gap between the two models is exactly what mapping bridges.

In Shopify, a location is any place you stock, fulfill, or sell goods from — a warehouse, a retail store, a pop-up, a third-party fulfillment site. Locations are central to how Shopify assigns inventory and routes fulfillment, and a store can have several of them out of the box. Shopify thinks of inventory as a quantity *at a location*.

In Zoho Inventory, the equivalent concept is a warehouse. Zoho also tracks stock per warehouse, but with one important difference: tracking stock across more than one warehouse is gated behind a setting called Multi-Warehouse. A fresh Zoho organization starts with a single primary warehouse, and you only get more once Multi-Warehouse is enabled.

So the two systems do not line up automatically:

  • Shopify can hand you several locations from day one; Zoho gives you one warehouse until you enable Multi-Warehouse.
  • The names rarely match — "Main Warehouse" in Shopify is not the same record as Zoho's default warehouse.
  • A Shopify location and a Zoho warehouse are different objects in different systems, with different IDs.

Mapping is the explicit statement that *this* Shopify location corresponds to *that* Zoho warehouse. Without it, the connector would have to guess, and guessing is how stock ends up in the wrong place.

Mapping your locations on the Connection page

You set all of this up on the Connection page after you have authorized Zoho. Zync connects to Zoho over OAuth — there is no plugin or module to install on the Zoho side — and once the connection is live and you have picked your organization, the location mapping section appears.

On that page you will see your Shopify locations listed on the left, each with a Zoho warehouse dropdown on the right. The workflow is straightforward:

  • For each Shopify location, open the dropdown and choose the Zoho warehouse it represents.
  • Repeat for every location in the list — none should be left blank.
  • Save the mapping.

Once saved, Zync remembers the pairing and uses it for all subsequent syncs. You do not redo this every time you sync; you only revisit it when your locations change.

The "Map All Locations" shortcut for single-warehouse stores

Plenty of stores run on a single warehouse even if Shopify shows more than one location. If that is you, mapping each row by hand is busywork.

Use Map All Locations to point every Shopify location at your single Zoho warehouse in one click. This is the right move when:

  • You have one physical place stock actually ships from.
  • Your extra Shopify locations are administrative (a "draft" or POS location) rather than separate stock pools.
  • You simply want everything consolidated into one warehouse total in Zoho.

After clicking it, confirm each row now shows your warehouse and save. It is the fastest path to a valid, complete map.

Auto-creating Zoho warehouses from Shopify locations

The other common starting point is the opposite problem: you have several real Shopify locations but no matching warehouses in Zoho yet. You do not have to go into Zoho and build them by hand.

Zync can create matching Zoho warehouses from your Shopify locations automatically. Instead of manually adding each warehouse in Zoho Inventory and then coming back to map it, you let the connector generate the warehouses that mirror your Shopify locations, then complete the mapping. This keeps the two lists aligned from the start and avoids small naming mismatches that make later mapping confusing.

The one prerequisite is the next section: if you are going to end up with more than one warehouse, Zoho needs to allow more than one first.

Enabling Multi-Warehouse in Zoho Inventory

If you need more than a single warehouse — which is the whole point of a multi-location setup — you have to turn on Multi-Warehouse in Zoho Inventory before creating the extra warehouses. You will find it under Settings → Preferences → Warehouses in Zoho Inventory.

A useful way to think about it:

  • One warehouse: Multi-Warehouse is not required. A single warehouse works as-is, and Map All Locations handles the mapping.
  • Two or more warehouses: enable Multi-Warehouse first, then either create the warehouses yourself or let Zync auto-create them from your Shopify locations.

If you try to create a second warehouse and Zoho refuses, this setting is almost always the reason. Enable it, then re-run the auto-create or add the warehouses manually, and the mapping dropdowns will fill out with the full list.

How per-location syncing keeps stock honest

Once mapping is in place, sync becomes per-location instead of aggregate, and that single change is what makes multi-location stock trustworthy.

Without mapping, the best any connector can do is push one combined number — the sum of every location's stock — back and forth. That total looks fine right up until it does not: a product sold out at your busiest warehouse still shows plenty available because another warehouse is carrying the slack. Customers order against stock that is in the wrong place.

With mapping, each update flows to the correct warehouse:

  • A stock change at one warehouse updates only the matching Zoho warehouse, not a shared pool.
  • A location that is sold out shows as sold out, instead of hiding behind a combined total.
  • Inventory sync, which is Zync's only two-way flow, routes each adjustment per mapped warehouse in both directions — Zoho → Shopify by default, or Shopify → Zoho if you prefer.

That two-way inventory sync runs in real-time over webhooks, on a schedule (minimum 30 minutes), or manually with a bulk "Sync Inventory" action — and it honors the warehouse map on every update. There is more on the mechanics in two-way Shopify–Zoho inventory sync, and the cadence trade-offs are covered in real-time vs scheduled vs manual sync.

How good mapping prevents overselling

Overselling is almost always a location problem in disguise. You sell a unit that the storefront thinks is available but the fulfilling location does not actually have, because the available number was an aggregate rather than a per-place figure.

Accurate per-location mapping is the most effective guard against this. When each Shopify location reflects the real, current quantity at its mapped warehouse — and updates land per warehouse rather than smearing across a total — the storefront stops promising stock that is not where the order needs it to be. Combined with two-way inventory sync, the available count at each location stays close to reality, which is what keeps you from selling the same unit twice.

For a deeper treatment of the failure modes and the fix, see stop overselling and the overselling fix overview.

What to do when you add a new location later

Mapping is not strictly one-and-done. The moment you add a new Shopify location — a new store, a new fulfillment site, a 3PL — that location starts out unmapped, and an unmapped location will not sync correctly.

When your locations change:

  • Open the Connection page and look for the new location in the list.
  • If it needs its own warehouse, enable Multi-Warehouse in Zoho first (if it is not already on), then create the warehouse or let Zync auto-create it.
  • Map the new location to the right warehouse and save.
  • Only then rely on that location's stock in sync.

Treat "map it before trusting it" as the rule. A new location quietly left unmapped is one of the most common reasons numbers drift after an otherwise clean setup.

Queueing and retries

Mapping decides *where* updates go; the queue decides that they actually arrive. Zync processes sync work through a Redis/BullMQ queue rather than firing writes inline, which matters when many location updates happen at once.

  • Each job retries up to 3 times with exponential backoff, so a transient Zoho hiccup or rate limit does not silently drop a warehouse update.
  • Writes are idempotent — safe to retry without creating duplicates — so a retried per-warehouse adjustment will not double-count stock.
  • Real-time changes arrive over webhooks and flow through the same queue, keeping per-location updates ordered and reliable.

The practical upshot for a multi-warehouse store: a burst of inventory changes across several mapped locations is handled steadily and durably, not lost in the noise.

Mapping verification checklist

Before you turn sync on, confirm the map is complete and correct:

  • Every Shopify location is mapped — no blank dropdowns anywhere in the list.
  • Each location points at the right warehouse — names that look similar are easy to cross. Double-check the ones that share words.
  • Multi-Warehouse is enabled in Zoho if you have more than one warehouse.
  • Warehouse list is complete — every warehouse you expect appears in the dropdowns; if not, create or auto-create the missing ones.
  • Mapping is saved — re-open the page and confirm your selections persisted.
  • Single-warehouse stores used Map All Locations and every row shows that one warehouse.
  • A test stock change at one location updates only the matching warehouse in Zoho, not the others.

Common mistakes

A handful of issues come up repeatedly:

  • Unmapped locations — any Shopify location left unmapped will not sync correctly. Map them all, including administrative ones.
  • Multi-Warehouse disabled — if Zoho will not let you create a second warehouse, enable Multi-Warehouse in Zoho Inventory first.
  • Not re-mapping after changes — if you add a Shopify location later, come back and map it before relying on its stock.
  • Assuming names match — a Shopify "Main" location and Zoho's default warehouse are different records. Map by intent, not by matching labels.
  • Mapping several locations to one warehouse by accident — fine if that is what you want (consolidation), a problem if you expected per-location tracking. Verify with a test change.

Final recommendation

Do the mapping deliberately and do it first. For a single-warehouse store, Map All Locations is a one-click setup. For a multi-warehouse store, enable Multi-Warehouse in Zoho, let Zync auto-create warehouses from your Shopify locations, map each one, and verify with the checklist above before turning sync on. Revisit the page whenever your locations change.

Get this right and everything downstream behaves: per-location inventory stays honest, overselling has far less room to happen, and product and order sync write to the correct warehouse every time. For the full picture, see multi-location inventory sync, and to plan how often stock updates flow, read real-time vs scheduled vs manual sync alongside the two-way inventory sync guide.

TopicsMulti-LocationWarehousesInventory SyncMappingOverselling
FAQ

Common questions

Why is location mapping required before inventory sync?
Stock is meaningless without a location. Mapping tells the connector which Zoho warehouse a Shopify location's stock belongs to, so updates land in the right place instead of one combined total. Product and order sync depend on it too, which is why it is required before any sync runs.
What if I don't have warehouses set up in Zoho yet?
Zync can create matching Zoho warehouses from your Shopify locations automatically. For more than one warehouse, enable Multi-Warehouse in Zoho Inventory first, then let Zync generate the rest.
I only have one warehouse — is there a shortcut?
Yes. Use Map All Locations to map every Shopify location to your single Zoho warehouse in one click, then save.
What happens when I add a new Shopify location later?
Return to the Connection page and map the new location to a Zoho warehouse before relying on its stock. An unmapped location will not sync correctly, so map it first.
Do I need Multi-Warehouse enabled in Zoho for a single-location store?
No. A single warehouse works without it. You only need Multi-Warehouse turned on in Zoho Inventory when you want to track stock across two or more warehouses.

Connect Shopify and Zoho in an afternoon

Start a free trial, connect your Zoho org, and bulk-sync your catalog the same day. No engineering required.