Transfers between stores

Sending stock to another location and confirming it at the receiving end.

A transfer moves stock from one store to another. It is not immediate: a transfer is created as pending, and the receiving store accepts or rejects it. The destination sees its incoming transfers waiting for a decision.

Flow — two stores, over time
1Source createsOne product or many lines.
2PendingNothing has moved yet.
3Destination decidesAccept, or reject.
4Stock movesAll lines, or none.
A transfer is not immediate. It is created as pending, appears in the destination store's incoming list, and only moves stock when accepted. A multi-line transfer applies atomically — every line moves or none does. Source: src/app/api/inventory/transfer/route.ts. Drawn as a flow: it plays out across two stores and two sessions, so there is no single screen to replicate.

Creating one

A transfer can carry a single product or many lines at once. Multi-line transfers are applied atomically — either every line moves or none does, so a transfer can never half-succeed.

What is refused

  • A source and destination that are the same store
  • A quantity that is not a whole number of 1 or more
  • The same product listed twice in one transfer
  • A product that does not exist

Permissions

Both creating and deciding on a transfer require inventory.transfer — supervisor and above by default.

Still stuck? We answer every message.Contact support