---
title: What each location type can do
summary: >
  A location is anywhere your stock physically rests, and its type decides what
  that stock is allowed to do. Warehouses and retail counters can be sold from
  online; consignee sites, event stalls and production partners hold real stock
  that is deliberately never offered on a storefront. Only a warehouse assembles
  kits, and only a mapped location reaches a given store.
type: concept
group: store
step: 3
permission: null
prerequisites: []
related:
  - /help/store/the-stock-ledger
  - /help/sync/product-shows-zero-online
  - /help/store/move-stock-between-locations
last_updated: 2026-08-07
---

**Two units of the same product, in two different places, are two different
things.**

A notebook on a shelf in your warehouse can be picked and posted this
afternoon. The identical notebook sitting on a partner's shop floor forty miles
away cannot — not because it is a different notebook, but because of where it
is.

So Mossery never stores "how many do we have" on its own. It stores how many are
at each location, and the location's **type** is what decides what that stock
may do.

This page covers:

- [What a location is](#what-a-location-is)
- [The six types](#the-six-types)
- [Which locations a storefront can sell from](#which-locations-a-storefront-can-sell-from)
- [Why some real stock is invisible online](#why-some-real-stock-is-invisible-online)
- [Closing a location down](#closing-a-location-down)

## What a location is

A location is a container for stock, not an address.

Two things follow from that. First, every stock movement names one — a delivery
lands somewhere, a transfer has a source and a destination, a count is a count
of one place. Second, the same product can hold a different quantity, and a
different set of permissions, at every location at once.

The type is chosen when the location is created. It is not a label. It is wired
into what the app will and will not let happen there, and the rules below are
enforced in one shared place rather than repeated screen by screen — so a
location cannot behave one way on the receiving page and another way on the
sync page.

## The six types

Each type answers five questions differently.

| Type | Holds countable stock | Can receive a delivery | Sells on your storefronts | Kits assembled here | Someone else's premises |
| --- | --- | --- | --- | --- | --- |
| Warehouse | Yes | Yes | Yes | Yes | No |
| Retail counter | Yes | Yes | Yes | No | No |
| Consignee | Yes | No | No | No | Yes |
| Event | Yes | No | No | No | No |
| Production partner | Yes | Yes | No | No | Yes |
| Staging | No | No | No | No | No |

In plain terms:

- **Warehouse** — storage you operate. The default destination for deliveries, the source of most transfers, and the only place the app treats components as assemblable into finished kits. Most businesses have one; nothing stops you having several.
- **Retail counter** — a shop or counter you run yourself. Holds stock, takes deliveries, and can sell online as well as in person if you map it to a store.
- **Consignee** — a retail partner holding your stock on their floor. You still own it, but they sell it. Instead of live selling it, you track a running balance: sent, minus sold, minus returned. They report sales to you monthly.
- **Event** — a market, fair or pop-up. Deliberately temporary. Stock goes out by transfer and comes back by transfer, and the location is switched off when the event ends.
- **Production partner** — an outside press or converter holding raw material you own. Suppliers often deliver straight to them, so a delivery can be received here without ever passing through your warehouse. Material is consumed at the partner during a run.
- **Staging** — a work-in-progress bucket for components part-way through assembly. It is not a real shelf, so it is not countable, not transferable and never appears in the stock matrix.

## Which locations a storefront can sell from

Being sellable is necessary. It is not sufficient.

A location has to clear two bars before a storefront will offer its units:

1. **Its type must be sellable at all.** Only warehouses and retail counters are. That rules out four of the six types before any setting is looked at.
2. **It must be explicitly mapped to that specific store.** Each store keeps its own list of the locations it fulfils from. A warehouse mapped to one store and not another sells on the first and not the second.

The mapping is a record someone creates, never something the app infers. If a
location has no mapping row for a store, nothing is pushed to that store from
it — the app treats the missing row as "nothing to send here" rather than
picking a nearby location and hoping.

That sounds pedantic until you see the alternative. Guessing which location a
store meant, rather than looking it up, is exactly the shortcut that once had
this app pushing one store's stock at another store's shelves, tens of times a
minute, for weeks. A missing mapping is a quiet no-op. A wrong guess is silent
corruption.

## Why some real stock is invisible online

Your storefront total is deliberately smaller than your company total, and that
is the design rather than a fault.

Say a product sits in three places:

| Location | Type | Units | Offered by your online store |
| --- | --- | --- | --- |
| Warehouse A | Warehouse | 120 | Yes |
| Retail 1 | Retail counter | 34 | Only if mapped to that store |
| Pop-up event | Event | 12 | No |

You own 166 units. Your store correctly offers 120. The reason is not a
technical limitation, it is that those other 46 units cannot be posted to an
online customer tomorrow.

- **Consignee stock is on someone else's shop floor.** Selling it online would mean promising a unit that a walk-in customer may buy an hour later, from a shelf you cannot see.
- **Event stock is in a van or on a trestle table.** It exists to be sold by hand, this weekend, and it is coming back.
- **Production partner stock is raw material mid-process.** It is not a finished product yet, and it may never be that product.
- **Wholesale relationships ingest orders but never receive a stock push.** Orders flow in; quantities do not flow out.

One trap lives here. Because a storefront's number is the sum over the mapped
locations, a location holding a **negative** quantity drags that sum down. A
count or return booked to the wrong place can pull a healthy product to zero
online while every shelf you can see has stock on it.

## Closing a location down

Deactivate. Never delete.

Every ledger entry ever written names a location, so removing one would leave
years of history pointing at nothing and would break every number derived from
it. Deactivating keeps the history readable and simply stops the location
appearing in the pickers.

Before you deactivate, the app shows you what is still attached: units on hand,
open purchase orders, open deliveries, transfers in flight, consignee reports
not yet closed. Move the stock out first — an event stall that ends with 12
units still on it has not really ended.

## Explore

**The stock ledger.** Every entry names a location, and the ledger is where you
find stock booked to the wrong one.
[Learn more →](/help/store/the-stock-ledger)

**Moving stock between locations.** The one supported way units change place.
[Learn more →](/help/store/move-stock-between-locations)

**A product shows 0 online.** The most common cause is stock sitting at a
location that store cannot sell from.
[Learn more →](/help/sync/product-shows-zero-online)
