Stock batches
What this page helps you do
Section titled “What this page helps you do”Stock Batches is the farm-wide batch and lot register. It answers which delivery a quantity belongs to, when it was received or expires, where it is stored, how much remains and whether it can be issued. Use it when tracing a recall, investigating a count, correcting receipt details or handling one physical lot.
The page is an advanced Inventory destination available through Manage or Farmlync search. The ordinary category lists and Product detail are faster when you already know the product. The current register has product and status filters but no batch/lot text-search control, even though its service supports one; finding a known batch or lot may therefore require paging or first narrowing by product.
Reading the register requires View inventory. Receiving, importing, editing, moving, transferring, quarantining, releasing and disposing stock require Manage inventory. The current page can still show these actions to a read-only user; the server refuses the mutation. A visible action is therefore not proof that the signed-in role can complete it.
Find a batch
Section titled “Find a batch”| Control | How it behaves |
|---|---|
| All products | Search and select one active farm product by name and code. Clear it to return to all products. Inactive products are not offered as filter choices, although their retained batches can still appear in the unfiltered list. |
| All Statuses | Filter to a backend-provided batch status. Clear it to include every status. |
| Page controls | Results are server-paged at 20 batches per page. Changing either filter returns to page one. |
| Clear Filters | Appears when a filtered search finds no rows. It removes both filters. |
The active page and filters are kept in the URL. A copied URL can therefore reopen the same register view, subject to current data and access.
Read the register
Section titled “Read the register”The desktop table shows Batch #, Product, Received, Expiry, Qty On Hand, Unit Cost, Status, Location and actions. Use the column control to hide optional columns; Farmlync remembers the selection for this farm. The mobile card shows the same core identity, dates, quantity, cost, location and status in a compact layout.
Select a row to open Batch Details, which shows:
- product name and code;
- status and unit cost;
- Received, On Hand and Reserved quantities;
- batch number, lot number, received date, expiry date and storage location;
- actions valid for the current state.
On Hand is the physical recorded quantity. Reserved is committed and not freely available. A dash means no value was recorded; it is not a zero amount or cost.
Understand batch status
Section titled “Understand batch status”| Status | Operational meaning |
|---|---|
| Available | May be issued while quantity remains and the labelled expiry day has not passed. |
| Reserved | The data model and screens can display committed quantity, but the current application has no operational workflow that creates a reservation or changes a batch to Reserved. On a new database this state is therefore normally dormant. |
| Quarantine | Held on the shelf and included in physical counts, but blocked from issue until released or disposed. The saved hold reason appears under the status in the desktop table. |
| Expired | The expiry date has passed in the farm timezone. It remains visible and physically countable until disposition. |
| Depleted | Closed at zero; there is no physical quantity left to count. |
A dated batch is usable through its expiry date and becomes expired at the start of the following farm-local day. Farmlync checks this rule during safety-sensitive work even if the background expiry sweep has not yet updated the displayed status.
Receive or import batches
Section titled “Receive or import batches”Receive Stock opens the single-product receipt. Saving creates the batch and the incoming stock movement; it is not the same as adding a product definition. See Deliveries for every receipt field.
Import opens the CSV stock-batch importer. Download and follow the current template/schema, reference products that already exist on this farm, review parsed rows, and inspect the final row-level result. Row validation is designed to report individual failures, but a persistence failure in one admitted row can currently roll back the whole accepted set. Verify the final result and resulting batches before assuming that the other rows were saved. The Products catalogue guide explains this import entry point.
Edit batch evidence
Section titled “Edit batch evidence”Choose Edit from a desktop row or from Batch Details. It corrects receipt metadata and cost; it does not directly change quantity.
| Field | Accepted value and effect |
|---|---|
| Batch Number | Optional, maximum 100 characters. Use the manufacturer’s batch identifier. |
| Lot Number | Optional, maximum 100 characters. Use the package or supplier lot identifier. |
| Expiry Date | Optional farm-local date. Removing it means no expiry is recorded; do so only when supported by the label/evidence. |
| Unit Cost | Optional number of zero or greater in the tenant currency, per saved base unit. |
| Supplier (from register) | Optional saved party with Supplier role. Selecting it fills the supplier name from the party register. |
| Supplier | Optional ad-hoc supplier text, maximum 200 characters. |
| Supplier Ref | Optional invoice, delivery-note or purchase reference, maximum 200 characters. |
| Storage location | Required active farm location. It is disabled while quantity remains on hand; use Move location to preserve the source/destination trail. |
Update stays disabled until a value changes. Farmlync checks the version that was opened; if another user has changed the batch, close and reopen the latest data before retrying.
The portal validates the text lengths and non-negative cost shown above. The current API does not repeat every one of those checks before persistence, and it does not require a Health batch to retain either a batch or lot identifier after editing. For regulated stock, do not clear both identifiers. Correcting the expiry date of a batch already marked Expired also does not currently restore it to Available; escalate that correction rather than assuming the new date unblocks stock.
Quarantine a batch
Section titled “Quarantine a batch”Use Quarantine for an Available or Reserved batch that must be held, for example because of a recall, damaged delivery or suspected contamination. Enter a required reason of no more than 500 characters. Saving keeps the stock on the shelf and in stock takes, but blocks issue.
The hold is a temporary control. If the stock must leave the farm’s ownership, record a supplier return or disposal instead. The list response exposes the current hold reason but does not expose the saved release reason, time or operator. After release, the desktop row can continue to show the old hold reason beneath an Available status; use the audit trail rather than interpreting that line as a current hold.
Release a quarantine
Section titled “Release a quarantine”Use Release only after the reason for the hold has been resolved. Enter the required release reason, up to 500 characters, so the decision can be explained later. The batch returns to use only if it is otherwise eligible. If its expiry passed while held, releasing the hold leaves it blocked as Expired.
At present, Quarantine and Release are exposed in the desktop table but not in the narrow mobile cards or Batch Details action bar. Use the desktop register for these actions until that interface gap is corrected. If a quarantine or release request fails, the current page does not present the server error beside the confirmation; reload the row before retrying so you can see whether the first request actually took effect.
Move, send or dispose stock
Section titled “Move, send or dispose stock”| Action | When it appears | What to use it for |
|---|---|---|
| Move location | Available batch with quantity remaining | Move part or all of the batch to another active location in the same farm. Enter destination, quantity, farm-local time, reason and optional notes. |
| Send farm / Send to farm | Available batch with quantity remaining | Transfer stock to another farm using the dedicated ownership and transit workflow. See farm-to-farm transfers. |
| Disposition / Record disposition | Health batch with quantity remaining that is Expired, Quarantine, or has an elapsed expiry date | Record Disposed or Returned to supplier, with quantity, date, method, recipient, document reference and optional notes. |
These workflows change stock and create audit evidence. The field-by-field move and disposition controls are also explained in Product detail.
Safe recall workflow
Section titled “Safe recall workflow”- Open Stock Batches and filter to the affected product.
- Confirm batch or lot number, supplier reference and location against the notice and physical package.
- Quarantine each affected usable batch and state the notice or investigation reason.
- Check the physical quantity and prevent issue while the supplier or authority investigates.
- When resolved, record either a reasoned Release or a documented supplier return/disposal.
- Verify the resulting status and quantity, then retain the external evidence referenced by Farmlync.
Use Stock movements to trace every receipt, use, adjustment, expiry marker, transfer, disposition and reversal that explains a batch balance.

