Receiving Stock
Putting quantities into a branch when there is no purchase order — one item at a time, a whole delivery at once, or a spreadsheet.
6 min read · Updated 10 Sep 2026
On this page
Most stock arrives without paperwork: a supplier drops off a box, you buy something from the market, you are opening a branch and typing in what is already on the shelves. This page covers all of that. It is free on every plan — no add-on gates any of it.
If the delivery does have a purchase order behind it, receive it against the PO instead so the ordered, received and outstanding figures stay in step. That needs the Inventory Pro add-on (₱400 per branch each month) and lives under Inventory → Purchase Orders.
Three ways in
| Use | Where | Good for |
|---|---|---|
| Stock Adjustment → Stock In | Inventory → Stock Levels → Stock Adjustment | One item, with batch and expiry |
| Bulk Stock-In | Inventory → Stock Levels → Bulk Stock-In | A whole delivery, typed or from Excel |
| Stock In on the app | Catalog → tap an item → Stock In | A quick top-up at the counter |
One item at a time
Open Inventory → Stock Levels and click Stock Adjustment. Set Adjustment Type to Stock In (add inventory).
| Field | Required | Notes |
|---|---|---|
| Branch | Yes | Stock is per branch. There is no all-branches option. |
| Product | Yes | Search by name or SKU. |
| Adjustment Type | Yes | Stock In adds. The other two options are covered in Stock adjustments. |
| Variant | Only if the item has variants | |
| Quantity | Yes | |
| Unit | — | Defaults to the item's own stock unit. |
| Cost Price | No | The cost of one unit at this delivery's price. |
| Batch Number | No | Up to 100 characters. |
| Manufacture Date | No | |
| Expiry Date | No | Must not be earlier than the manufacture date. |
| Notes | No | Required for the other two adjustment types, optional here. |
Batch and expiry fields only appear when the type is Stock In, which is deliberate — see Batch & expiry for what Kassly does with them, and for what it does not do.
Buying in cases, counting in grams
If the item has packaging conversions set up, the Unit dropdown offers them,
and the form shows what you are really adding underneath the quantity box —
= 25,000 g when you enter one sack. The quantity stored is always in the
item's own stock unit, so the conversion happens once, here, and never again.
Setting conversions up is covered in Ingredients & recipes.
Cost Price is worth filling in
Cost Price is optional, and skipping it costs you nothing today and something later. Kassly values your stock as a weighted average of the costs recorded on the movements that brought it in. A stock-in with no cost contributes nothing to that average, and an item with no costed movements at all falls back to the Cost Price on the product record.
Enter the cost of one stock unit at the price you actually paid this time. Full detail in Inventory valuation.
A whole delivery at once
Click Bulk Stock-In on the Stock Levels page. Pick a branch first — the whole screen depends on it — then choose a tab.
Manual Entry is a table you add rows to: product, quantity, and optionally a unit, cost price, batch and expiry per row. Click Submit Stock-In and every row is written in one transaction. If anything fails, nothing is written.
Import from Excel is the same job from a spreadsheet:
- Click the template button to download
bulk-stock-in-template.xlsx. It comes pre-filled with your own products for the branch you selected, so you are only typing quantities. - Fill in the quantities. Rows with no quantity are ignored.
- Upload it and click Submit Import.
.xlsxor.xls, up to 5 MB.
The import is checked before anything is written. If any row has a problem you get Some rows contain errors. Please fix them and re-upload. with the list, and no stock moves — you fix the sheet and upload it again rather than hunting for which half went through. A sheet with no quantities at all is refused the same way.
Both routes are safe to retry: a submit that times out and is sent again will not double up.
Column-by-column detail for every Kassly import sheet is in Import formats.
Opening stock for a new branch
Two shortcuts save a lot of typing when you are starting out:
- The ingredient importer creates raw-material products and their opening stock from one sheet. See Ingredients & recipes.
- After creating a product, Kassly offers to take you straight to the Stock Adjustment form for it.
On the app
Open Catalog, tap an item, and scroll to Stock In: a quantity, an optional note, and Add to stock. It adds to the branch the device is signed in to.
Staff below manager see Requires manager approval. under the heading and get a manager PIN prompt when they tap the button.
A manager's PIN is not currently enough on its own. Recording stock needs the signed-in account to be an Owner or a Manager. A cashier who is granted the Stock In / Adjust Inventory permission through a custom role will pass the PIN prompt and then be refused by the server. Sign in as a manager to record stock on the app.
What happens after you save
- One Stock In movement per item, naming you and the time. It cannot be edited or deleted afterwards.
- The branch's on-hand figure goes up.
- Every POS terminal on that branch gets the new figure live.
- If the item is still at or below its reorder point, a Low Stock Alert goes out anyway. Receiving does not clear an alert on its own — receiving enough does.
Offline
This is the part to read before you rely on it in a store with bad signal.
| Job | Offline |
|---|---|
| Stock In on the app | Not protected. There is no offline queue. The request fails and nothing is recorded. |
| Receive PO on the app | Blocked, with Receiving requires a connection. |
| Everything on the web | Needs a connection, like the rest of the web app |
Nothing you type into the app's Stock In box is queued for later. Unlike a sale, it is not held on the device and sent when signal returns — offline you get an error and the delivery is simply not recorded. If you are receiving in a dead spot, write the quantities on paper and enter them once you are back online.
Where to go next
- Stock levels — what the quantities mean once they are in
- Batch & expiry — recording a batch, and its limits
- Stock adjustments — the other direction