Warehouses

Central storage locations that hold stock but never sell it — how they differ from a branch, how stock gets in and out, and what they cannot do.

10 min read · Updated 25 Oct 2026

On this page

A warehouse is a place that holds stock and does not sell it. If you buy in bulk for several branches, or run a central kitchen, you want the stock recorded somewhere before it is anywhere near a till — that is what this is for.

Needs the Warehouse & Commissary add-on (₱500 per branch each month), or any bundle that includes it. One subscription grants both the warehouse screens and the commissary production features.

Open Inventory → Warehouses.

A warehouse is not a branch

They are different kinds of thing, and mixing them up is the source of most questions about this feature.

Branch Warehouse
Sells Yes — POS, shifts, receipts Never. No POS, no shift, no sales
Holds stock Yes Yes, in its own separate ledger
Appears on Stock Levels Yes No
Counted with a stock count Yes Yes — on the web, optionally bin by bin
Stocked in or adjusted by hand Yes No
Counts toward your per-branch add-on price Yes No

The last two rows are the ones to plan around. Every stock movement in Kassly belongs to a branch or a warehouse, never both — which is why a branch filter never shows warehouse activity, and why the branch tools in the rest of this part simply do not apply here.

Creating one

Click New Warehouse.

Field Required Notes
Code Yes Up to 20 characters, unique across your business. e.g. WH-001
Name Yes e.g. Main Warehouse
Address No
Contact Phone No
Create default zones — On by default

Leaving Create default zones on gives the warehouse six zones straight away: Receiving, Storage, Picking, Packing, Shipping and Returns. A seventh type, Quarantine, exists but is not created for you — add it yourself if you hold stock back for inspection.

A code stays reserved after you delete a warehouse, so reusing an old code is refused with a plain message rather than failing oddly.

Zones and bins

Inside a warehouse you can describe the physical layout: zones of the types above, and bins within them.

Bin type
Rack
Shelf
Floor
Freezer
Fridge
Hazmat

Add and edit bins on the Bins tab: a code (unique in the warehouse), the zone it sits in, an optional label, the type, an optional capacity in units, and whether it is blocked. A blocked bin takes no new stock; automatic picks use it last.

Until you turn on bin tracking (next section), bins only describe the space: stock is held at the warehouse as a whole.

Tracking stock by bin

Turn it on per warehouse: Settings → Track stock by bin. Warehouses that leave it off work exactly as before.

The warehouse total stays the figure that counts. Bins hold part of it, and whatever no bin holds is Unassigned. When you switch tracking on, all the stock already there starts as unassigned; move it into bins as you go.

With tracking on:

  • The Stock tab shows, per item, how much is in each bin and how much is unassigned. The item's default bin has a highlighted border. A bin filter lists only the items a bin holds, and each row has a Move button.
  • Putting stock away. Stocking in by hand, importing opening stock, receiving a purchase order and receiving a transfer can each name a bin. Leave it on automatic and the stock goes to the item's default bin if it has one (and it isn't blocked), otherwise to unassigned. On the opening-stock sheet, the Bin Code column does the same (blank = automatic).
  • Taking stock out. A removal or a transfer out can name the bin to take from. Left on automatic (and always for supplier returns and production), it takes unassigned stock first, then bins in code order, with blocked bins last. Naming a bin that holds too little is refused; the automatic draw never is.
  • Counting a bin. A Physical Count that names a bin sets that bin to what you counted, and the warehouse total moves by the difference. A count without a bin counts the whole warehouse; if it comes in below what the bins hold, the bins are trimmed to match. To count many items (or a whole bin) in one go, use a stock count session: see Stock counts.
  • Returning to a supplier. A supplier return from this warehouse can name the bin each line leaves from. See Supplier returns.
  • Moving stock between bins. Click Move on a stock row or on a bin's page, choose from and to (either can be Unassigned) and the quantity. A move never changes the warehouse total or the cost, and writes no stock movement. Tick Make … this item's default bin to set where future putaways go.
  • Capacity is a guide, not a limit. A bin's capacity is in units, summed across every item in it. Going over shows a warning (on the picker, in the move dialog and after saving) and the stock is still put away.

Click a bin on the Bins tab to open its page: what it holds, how full it is, and its history of putaways, picks, moves and counts, with who did each.

Bins track quantities only. Batches and expiry stay per warehouse, not per bin.

Turning tracking off clears every bin assignment in the warehouse, so all its stock is unassigned again. The totals don't change. Deleting a bin does the same for what that bin held.

The warehouse screen

Opening a warehouse gives you five tabs.

Tab What is on it
Stock What the warehouse holds, per product (and per bin, with bin tracking)
Zones The functional areas of the warehouse
Bins The bins, what each holds and how full it is
Goods Receipts Deliveries received here, by GRN number, with the bin each line went into
Settings Name, address, phone, active flag, bin tracking, delete

The Stock tab lists Product, SKU, On Hand, Allocated, Available and Reorder Point, with a search and a low-stock filter.

Allocated is what confirmed sales orders shipping from this warehouse hold, and Available is On Hand less Allocated. Without such orders, Allocated is zero and Available equals On Hand. See Sales Orders and Invoices.

The Reorder Point is real. Set it per warehouse on the product's edit page (the Reorder levels card) or for many items at once from Catalog → Products → Set reorder level; see Stock levels. The Low Stock filter on this tab lists the items at or below it. Warehouse stock does not feed Inventory → Reorder, which suggests orders for branches only.

Getting stock in

Four ways:

  • Stock it in by hand. On the Stock tab, click Adjust stock. It opens the ordinary Stock Adjustment form with the warehouse already chosen as the location (with the add-on, that form's Location list has a Warehouses group). Pick Stock In, the quantity and unit, and optionally the cost, a batch number and dates. The cost is per the unit you picked and is saved per base unit, the same as at a branch.

  • Import opening stock. On the Stock tab, click Import opening stock, download the template (it lists your tracked items with what this warehouse holds now), fill in Quantity to Add and, where you have them, Cost Price (per base unit), Batch Number, Expiry Date and, for serial-tracked items, the serials (one per unit in the Serial Numbers cell), then upload it. Every row is checked first: one bad row and nothing is stocked in.

  • Receive a purchase order into the warehouse. When you raise a PO you choose a delivery destination; choose the warehouse and receiving it writes the stock there, along with a numbered Goods Receipt you can open from the Goods Receipts tab. Each item gets a GRN Receipt movement carrying the PO line's unit cost.

  • Receive a transfer from a branch or another warehouse. See Stock transfers.

A hand stock-in behaves exactly like one at a branch:

  • Cost. With a cost, it is recorded in the item's cost history (Inventory Pro shows it). Only a business that switched on moving-average costing has its catalog cost blended; everyone else keeps their cost as it is.
  • Batches. A batch number or expiry date creates or tops up that batch at the warehouse, and it shows in batch balances and expiry alerts. An item set to Require expiry date on stock-in cannot come in without its expiry date, by hand or on the opening-stock sheet. See Batch & expiry.
  • Negative stock. A stock-in always lands, even onto a negative figure.

Correcting a warehouse figure

The same Adjust stock form does the other two jobs:

  • Remove stock takes units out for a reason: Damaged, Expired, Spoiled, Theft, Sampling, Correction or Other (Other needs a note). The reason feeds the Shrinkage report. A removal is refused if it would take the warehouse below zero. Removals draw batches earliest expiry first.
  • Physical Count sets the figure for one item to what you counted. The reason is optional, but then you need a note.

There is no multi-item count session for a warehouse yet: Inventory Counts cover branches only. Count a warehouse item by item with Physical Count.

Getting stock out

  • Transfer it to a branch — the normal path, and the reason most warehouses exist.
  • Transfer it to another warehouse.
  • Consume it in a commissary production run, which turns inputs into a finished item and yields that item into a warehouse.
  • Ship it to a customer on a sales order that ships from the warehouse: pick, pack and ship it from Sales → Shipments. See Sales Orders and Invoices.

Warehouse-to-branch transfers use the same screen as branch-to-branch ones. Because a warehouse never sells, stock leaving one always leaves as a transfer: a shipment moves the goods to the order's branch, which sells them.

Deleting a warehouse

Kassly refuses the deletion, with a specific reason, in three cases:

Reason Message
It still holds stock Cannot delete a warehouse that still holds stock. Transfer it out first.
A transfer is pending or in transit Cannot delete a warehouse with pending or in-transit transfers.
An open purchase order is due to be delivered there Cannot delete a warehouse that is the delivery destination of an open purchase order.

Clear the blocker and try again. Deleting is a soft delete — the record and its history are kept, and the code stays reserved.

Permissions

Action Permission
See warehouses, zones, bins and stock View Warehouses
Create, edit, delete warehouses, zones and bins Manage Warehouses
Stock in, remove, count and import opening stock Stock In / Adjust Inventory, plus View Warehouses
Move stock between bins Stock In / Adjust Inventory, plus View Warehouses
Turn bin tracking on or off, set an item's default bin Manage Warehouses
Set a warehouse reorder point Stock In / Adjust Inventory, plus View Warehouses

Both are assignable through Custom roles, so a stock controller can see everything without being able to restructure the place.

Valuation includes warehouse stock

The valuation report values branch and warehouse stock, so the total matches what your books say you are holding. Warehouse rows are costed from GRN receipts and transfer-ins. See Inventory valuation.

Where to go next