Lots / Batches lists every lot (batch) SolaStock has recorded for your lot-tracked items, with its expiry date and status. Open a lot to answer the three traceability questions: where did it come from, where is it now, and where did it go. From the same page you can quarantine a lot, put it back into use, or mark it consumed.
Use it when a customer complains about a batch, when a supplier or regulator asks about a lot, when stock is about to expire, or before you open a recall. Inventory managers, quality officers and warehouse supervisors use it most.
Lots are not created on this screen. A lot is created automatically the first time a lot code is captured on an inbound document for a lot-tracked item: a goods receipt, an opening stock entry or a stock-in adjustment.
Where to find it
| Sidebar | Traceability → Lots / Batches |
| URL | /inventory/traceability/lots; one lot opens at /inventory/traceability/lots/{id} |
| Breadcrumb | Traceability → Lots / Batches (→ lot code on the detail page) |
| Other ways in | View lots on the Traceability hub; the lot links in the Lot Trace Report and Expiry Risk reports |
| Plan | Batch and expiry tracking feature (the whole Traceability group) |
| Permission to view | View lots, serials, expiry & traceability |
| Permission to change status | Create / edit lots & lot status |
How lots are captured
You never type a lot here. You type it on the inbound document:
| Document | Where the lot is entered |
|---|---|
| Goods receipt (Purchasing) | Each line of a lot-tracked item shows a Lot / batch code box and an Expiry date box. |
| Opening stock (Opening stock) | Same boxes on each line. |
| Stock-in adjustment (Adjustments) | Same boxes on an increase line. |
Rules applied when the document is saved or posted:
| Rule | What happens |
|---|---|
| Lot code is required for a lot-tracked item | A blank code is refused. |
| Expiry date is required when the item has Expiry ticked | "Item … requires an expiry date on lot capture." |
| The item must be lot-tracked | "Item … is not lot-tracked." |
| Same item + same lot code | Re-uses the existing lot instead of creating a duplicate. If the existing lot has no expiry date yet, the new date is filled in. |
| Different items can share a code | LOT-001 for item A and LOT-001 for item B are two different lots. |
A new lot starts as Active, with Received date = the capture date.
On outbound documents (shipments, transfers, stock-out adjustments) you choose the lot from a list such as "LN-2410-05 · 120 available · expires 2027-03-31". Lots that are Expired, Quarantined or Recalled are greyed out in that list with their status in brackets. When your Picking policy is FEFO (or the item tracks expiry), a hint suggests the earliest-expiring lot first, for example "FEFO suggestion: LN-2410-05 · expires 2027-03-31 · 40" with a Use button, and warns "Earlier-expiring lot … is available — FEFO suggests it first." if you picked a later one.
Screen tour: the lot list
Header
Lots / Batches, with a yellow Sample data badge if no organization is selected. There is no New button: lots come from inbound documents.
Filters
| Control | How it works |
|---|---|
| Search by lot code… | Matches any part of the lot code as you type (for example 2409 finds LN-2409-17). |
| Status filter | All statuses (default), Active, Expired, Quarantined, Consumed, Recalled. Filters on the status stored on the lot. |
Columns
| Column | Meaning |
|---|---|
| Lot code | The code captured on receipt. Click it to open the lot. |
| Item | SKU · item name. |
| Expiry date | The lot's expiry date, or — if it has none. |
| Status | The stored lot status (see Statuses & lifecycle). |
What the list includes
- The 50 most recently created lots that match the search and filter. There is no paging; narrow the list with the search box or status filter to find older lots, or use the Lot Trace Report for a full list.
- If you are limited to certain warehouses, only lots that currently have stock in your warehouses are listed. Lots that are fully shipped no longer appear for you.
- A lot whose expiry date has passed but whose status was never changed still shows Active in the list and under the Active filter. Its detail page shows the Expired badge.
Empty and error states
| Message | Meaning |
|---|---|
| No lots — "Lots are captured on inbound documents for lot-tracked items." | No lot matches, or none has been captured yet. |
| Lots could not be loaded — "Try loading the lots again." with Try again | The list failed to load. |
Screen tour: the lot detail page
Header
The lot code, then badges:
| Badge | Shown when |
|---|---|
| Status (grey) | Always: the stored status, e.g. Active. |
| Expired (yellow) | The expiry date is in the past, whatever the stored status. |
| Recalled (red) | The lot's status is Recalled (an active recall flagged it). |
Summary panel
| Field | Meaning |
|---|---|
| Item | SKU · name. |
| Expiry date | The date, followed in brackets by the lot's effective status: Recalled or Quarantined if set; otherwise Expired if the date has passed; otherwise the stored status (usually Active). — if no expiry. |
| Received date | The date of the first capture. |
| Received quantity | Total of every incoming movement for this lot: receipts, opening stock, stock-in adjustments, sales returns and transfer arrivals. |
| On-hand quantity | Received minus issued: what is still in stock across all locations. |
| Reserved quantity | Held for sales orders, in the locations you can see. |
| Issued / shipped quantity | Total of every outgoing movement: shipments, stock-out adjustments and transfer departures. |
Quantities are shown with four decimals, for example 180.0000. A lot moved between warehouses counts the move once as incoming and once as outgoing, so Received and Issued both include it; On-hand stays correct.
Tabs
| Tab | What it shows | Empty text |
|---|---|---|
| Locations (default) | One row per place holding the lot: Warehouse, Bin (— if no bin), On-hand quantity, Reserved quantity. Only your warehouses if you are warehouse-scoped. | "No locations currently hold this lot." |
| Sources | Source documents (goods receipt / opening balance / adjustment): every incoming document with quantity and date, each a link to the document. Transfers: every transfer that moved the lot. | "No source documents." / "No transfers." |
| Shipments / returns | Shipments that sent this lot to customers and Returns that brought it back, each with quantity and date and a link. This is your "where did it go" view. | "No shipments." / "No returns." |
| Ledger | Every stock ledger movement for the lot, oldest first. |
Action buttons (bottom of the page)
| Button | Shown when the lot is not already… | Sets status to |
|---|---|---|
| Quarantine | Quarantined | Quarantined |
| Mark active | Active | Active |
| Mark consumed | Consumed | Consumed |
Without Create / edit lots & lot status the buttons are greyed out; hovering shows "You do not have permission for this action." With no organization selected: "Select a tenant to create or post records."
Tasks
Find a lot and see where it is
- Go to Traceability → Lots / Batches.
- Type part of the lot code in Search by lot code….
- Click the Lot code.
- Read the summary, then the Locations tab for the warehouses and bins holding it.
Trace a lot back to its supplier document
- Open the lot.
- Click the Sources tab.
- Under Source documents, click the goods receipt (or opening stock / adjustment) link. The receipt shows the supplier, purchase order and date.
Find which customers received a lot
- Open the lot.
- Click Shipments / returns.
- Each line under Shipments links to the shipment, which shows the sales order and customer. For a customer list in one file, open a recall draft for the lot and use Export CSV, or run the Lot Trace Report.
Quarantine a lot
Use this to stop a lot from moving while you investigate, without opening a recall.
- Open the lot.
- Click Quarantine (bottom).
- The confirmation Quarantine opens: "This changes the availability status of this lot or serial. Existing stock restrictions still apply." Click Quarantine to confirm, or Cancel.
- You see "Lot marked Quarantined." and the status badge changes.
From now on the lot is greyed out on outbound documents and posting refuses it without Ship quarantined / recalled lots (override).
Put a lot back into use (Mark active)
- Open the lot.
- Click Mark active and confirm in Mark active.
- You see "Lot marked Active."
Mark active also releases a lot that a recall marked Recalled. Closing a recall does not release its lots by itself, so after the recall is resolved and the stock is cleared for sale, someone with the lot permission must click Mark active. A lot whose expiry date has passed still shows the Expired badge and stays blocked, even when its status is Active.
Mark a lot consumed
Use Mark consumed when the lot is used up or written off and you want it out of the expiry warnings.
- Make sure the remaining stock was issued, adjusted out or returned to the supplier first (the button does not move stock).
- Click Mark consumed and confirm in Mark consumed.
- You see "Lot marked Consumed."
Consumed lots are left out of the hub's expiry count and the Expiry Risk report. The status is for record keeping: it does not move or block stock, so any quantity still on hand remains on hand.
If something goes wrong
| Message | Meaning |
|---|---|
| A red notice with the server's reason | The change was refused, for example an invalid status. Nothing changed. |
| Status not confirmed — "We could not confirm whether the change completed. Check the current status before submitting again." | The connection dropped before the answer arrived. Click Check current status (or reload) and look at the badge before clicking again. |
| "You do not have access to this action. Contact your workspace administrator." | Your role lacks the lot permission. |
Statuses & lifecycle
| Status | How it is set | Outbound effect | Allowed next |
|---|---|---|---|
| Active | New lot; Mark active | Can be picked and shipped (unless past its expiry date). | Quarantine, Consumed; Recalled by a recall |
| Expired | The expiry date passing is treated as Expired automatically on detail pages, pickers and posting, even if the stored status is still Active | Blocked without Ship expired lots (override). | Mark active (badge stays while date is past), Quarantine, Consumed |
| Quarantined | Quarantine | Blocked without Ship quarantined / recalled lots (override). | Mark active, Consumed |
| Recalled | Activate recall on a recall that lists the lot | Blocked like Quarantined. | Mark active, Quarantine, Consumed |
| Consumed | Mark consumed | Not blocked; excluded from expiry warnings. | Mark active, Quarantine |
Typical life of a lot: Active → (date passes: Expired) → Consumed. With a problem: Active → Quarantined or Recalled → Mark active (released) or Consumed (written off).
Permissions
| Role | See lots | Change lot status | Ship blocked lots |
|---|---|---|---|
| Organization owner, SolaStock Administrator | Yes, all warehouses | Yes | Yes (both overrides) |
| Organization Manager / Member without a SolaStock role | Yes, assigned warehouses | Yes | Yes |
| Organization Viewer without a SolaStock role; Warehouse User (legacy) | Yes, assigned warehouses | No | No |
| Organization Accountant without a SolaStock role | No | No | No |
| Scoped Inventory Manager, Warehouse Manager, Warehouse Operator, Inventory Viewer | No (unless a custom role adds it) | No | No |
| Custom role | If View lots, serials, expiry & traceability is ticked | If Create / edit lots & lot status is ticked | If the override permissions are ticked |
Worked examples
Example 1: answer a customer complaint (quick)
A pharmacy calls Al Noor Trading LLC about a tin of Baby Formula 800 g printed with lot LN-2410-05.
- Sara Khan opens Traceability → Lots / Batches and types
2410-05. - She opens the lot: Expiry date 2027-03-31 (Active), Received quantity 300.0000, On-hand quantity 120.0000, Issued / shipped quantity 180.0000.
- Sources shows one goods receipt,
GRN-00087, dated 2026-09-14. Shipments / returns shows 4 shipments, one of them to the calling pharmacy. - Nothing else is reported, so she leaves the lot Active and logs the call.
Example 2: quarantine, test, release and write off (full scenario)
Omar Haddad receives a temperature-alarm report for the cold room at Dubai Main, which holds lots LN-2410-05 (120 tins) and LN-2409-30 (60 tins).
- Quarantine both. He opens each lot and clicks Quarantine → Quarantine. Notices: "Lot marked Quarantined." Both lots now show Quarantined.
- Effect on sales. A picker preparing sales order
SO-00412sees both lots greyed out, e.g. "LN-2410-05 · 120 available · expires 2027-03-31 (Quarantined)". The shipment cannot be posted from these lots. - Lab result.
LN-2410-05passes. Omar opens it and clicks Mark active → "Lot marked Active." The 120 tins are available again. - Write-off.
LN-2409-30fails. Omar posts a stock-out adjustment for 60 tins with reasondamage, picking lotLN-2409-30(an administrator holds the quarantine override, so the adjustment is accepted). The lot's On-hand quantity becomes 0.0000. - Close it out. He opens
LN-2409-30and clicks Mark consumed → "Lot marked Consumed." It disappears from the hub's expiry count and the Expiry Risk report.
The adjustment posts to SolaCount as an inventory loss if SolaStock is connected; the status changes themselves post nothing.
How it connects
| Screen / app | Connection |
|---|---|
| Items | Tracking → Lot and Expiry decide whether lots are captured. |
| Purchasing, Opening stock, Adjustments | Create lots and add quantity to them. |
| Sales & fulfilment, Transfers | Consume or move lots; blocked by lot status. |
| Recalls | Activating a recall sets its lots to Recalled. |
| Reports | Lot / Expiry, Expiry Risk, Lot Trace Report, Inventory Valuation (shows lot code per balance). |
| Settings | Picking policy and Expiry warning days. |
Tips & common problems
| Problem | Cause | Fix |
|---|---|---|
| A lot I received is not in the list | Only the 50 newest matching lots are shown; or the item was not lot-tracked when received; or the stock is in a warehouse you are not assigned to. | Search the code; check the item's tracking; check your warehouses in Team access. |
| A lot past its expiry still says Active in the list | The list shows the stored status. Expiry is applied automatically on the detail page, pickers and posting. | Open the lot to see the Expired badge. Use the Expired filter only for lots someone marked Expired. |
| A recalled lot is still blocked after the recall was closed | Closing a recall does not change lot statuses. | Click Mark active on the lot when it is cleared. |
| I clicked Mark active but the lot still can't be shipped | Its expiry date has passed. | Ship with Ship expired lots (override), or adjust the stock out. |
| Buttons are greyed out | No permission, or no organization selected. | Hover to read the reason. |
| "Item … requires an expiry date on lot capture." on a receipt | The item tracks expiry. | Fill in Expiry date on the receipt line. |