TrueSKU
Help CentreTrueSKU support docs
Stock

Multiple Warehouses

If you keep the same products in more than one physical place, TrueSKU can hold a separate stock count for each, move stock between them, and decide which warehouses each sales channel is sent stock from.

Optional, and off by default. Nothing changes until the account owner turns it on in Settings > Warehouses. It is available on every plan.

When to use it

Turn it on if, for example, one of your sales channels is fulfilled from one site and another from a different site, so the same SKU has two genuinely separate piles of stock, or if you hold a product in several places, can ship an order from any of them, and want one combined figure on every channel. If everything sits in one place, leave it off: a single stock figure per SKU is simpler, and the free-text Location field on a SKU (a shelf, bay or bin label) is all you need.

Three things share the word "warehouse". A warehouse on this page is a place that holds its own stock count. The Location field on a SKU is just a bin or shelf label. The Warehouse App is the phone app for scanning deliveries and counts. They are separate features.

Turning it on

Go to Settings > Warehouses.

Only the account owner can see this page.

Choose "Turn on multiple warehouses".

TrueSKU creates a warehouse called Main warehouse and places all of your current stock in it. No quantity changes, and nothing is sent to your channels differently.

Add your other warehouses.

Give each a name. You can rename a warehouse, change which one is the default, and archive one you no longer use.

You can turn it off again later, but only when you are down to a single active warehouse. Your SKU totals are kept exactly as they are.

How stock is held

Every SKU still has one total stock figure, and that figure is what you see in the SKU list, in reports and in the API. Behind it, TrueSKU keeps a count for each warehouse, and the warehouse counts always add up to the total. Open a SKU to see its Stock by warehouse. In the SKUs list, hover over a SKU's Available figure to see where it is held, or expand the row and look in the Stock tracking card. Bundles and supplier-driven SKUs are not held per warehouse; a bundle's availability is worked out from its components.

Moving stock between warehouses

Once multiple warehouses is turned on, a Transfers page appears under Stock in the menu (it isn't shown while the feature is off). Open it, choose where the stock is coming from and going to, add the SKUs and quantities, and confirm. A transfer is instant and moves the stock in a single step, so it either all happens or none of it does.

You can't move more than the source warehouse holds.

The transfer is refused and nothing moves.

Totals and costs don't change.

A transfer changes where stock is, not how much you have or what it cost. Transfers are recorded as a pair of movements (out and in) with the same reference, so they appear in the movement history.

Receiving deliveries

The receive screens, on desktop and on a phone, have a Receive into choice. It defaults to the warehouse set on the purchase order (the Receive into warehouse field on the PO form), or to your default warehouse if none is set, and you can change it for a particular delivery. The stock, and its cost layer, are added to the SKU as normal; only the warehouse differs.

Stock takes

A stock take counts one warehouse. When you start one, choose the warehouse: the expected quantities come from that warehouse, and reconciling adjusts that warehouse only. Phone counters don't have to choose anything, because the stock take already names its warehouse. As before, a stock take is point-in-time: sales and receipts that happen while you are counting are kept, not overwritten. A warehouse with an open stock take can't be archived.

Changing stock figures

Setting a stock figure ("make it 50") only makes sense for one warehouse, so wherever you set one directly you choose which:

  • Bulk adjust has a warehouse picker, and its Current and New Qty columns refer to that warehouse.
  • With more than one warehouse, a SKU's total on the edit page is read-only. Use Bulk adjust, a transfer, receiving or a stock take instead. The bulk edit on the SKU list no longer offers "Set stock on hand" in this case.
  • With one active warehouse everything works as it did before.

Sending stock to your channels

By default every channel is sent your total stock across all warehouses, exactly as it was before you turned this on, so adding a warehouse never changes what your channels show. That suits a seller who can ship an order from any of their warehouses. If a channel only ships from certain warehouses, restrict it: on the Channels page use Sends stock from > Change, choose Only these warehouses and tick them. The channel is then sent the combined stock of just those. The setting only appears once you have more than one warehouse.

Example: one channel per site.

Your Shopify store ships only from Warehouse A and your B&Q account only from Warehouse B. Restrict Shopify to A and B&Q to B. SKU X has 10 in A and 4 in B, so Shopify is sent 10 and B&Q is sent 4.

Example: ship from anywhere.

SKU X is held in three warehouses and you can ship an order from any of them. Leave the channel on all warehouses: it is sent the sum of the three.

Buffers apply to what the channel draws on.

A buffer or oversell setting on the SKU is applied to the stock the channel is sent, whether that is everything or the warehouses you chose.

Spread only shares stock between channels drawing on the same warehouses.

Two channels both on all warehouses split your total. Two channels both restricted to exactly the same warehouses split those warehouses' stock. Channels with different sets are separate pools and aren't part of each other's split. See Channel push settings.

Bundles.

A channel on all warehouses sees the bundle's normal availability. A restricted channel is shown the number you could build from the components held in its warehouses. With more than one warehouse chosen this adds each component up across them, which assumes they can be brought together.

After you change which warehouses a channel sells from, its quantities follow as the stock syncs run. Channels that are checked often (eBay, Shopify, WooCommerce) update quickly; larger catalogues on other channels can take a few cycles.

Sales and returns

When a sale is applied to stock, TrueSKU has to choose which warehouse it comes out of. Each channel has an order for this: the warehouses you ticked, in the order you numbered them, or for a channel on all warehouses your default warehouse first and then the rest. The sale takes from the first warehouse in that order holding enough; if none holds enough, from the one holding the most, which may take it below zero until a transfer or stock take puts it right. TrueSKU cannot see which shelf a parcel really left from, so if you fulfil from a different warehouse than the order suggests, a transfer or stock take corrects the counts. The "later stock event" safety check that holds back older sales when a count or adjustment happened afterwards only looks at the same warehouse, so counting one warehouse doesn't hold up another's sales. Returns that go back into stock are restocked to your default warehouse.

Stock value by warehouse

The Stock Valuation report has a By warehouse tab. It is approximate: costs belong to each SKU rather than to a warehouse, so a SKU's value is shared between the warehouses holding it in proportion to the units each holds.

Archiving a warehouse

Warehouses are archived, not deleted, so your history always makes sense. A warehouse can be archived once it holds no stock, no channel account is restricted to it, and it has no open stock take. It can't be the default.

What it doesn't do (yet)

  • Warehouses are chosen per channel, not per order. A sale is taken from the first warehouse in the channel's order that has enough stock; TrueSKU doesn't know which warehouse an individual order really ships from. A single store that sends some orders from one place and some from another depending on the customer's address (for example UK and US orders) is therefore not handled order by order yet.
  • Transfers are instant. There is no "in transit" stage.
  • Cost layers, reservations from open orders and reorder levels are per SKU, not per warehouse.

For developers

The API lists warehouses at GET /api/v1/warehouses, accepts warehouse_id wherever a stock figure is set, received or counted, can return a per-warehouse breakdown with ?include=warehouses on SKUs, and can create transfers at POST /api/v1/stock-transfers. Accounts that haven't turned the feature on see no change. See the API Reference.