A recall by batch, traced to stores and customers, and disposal on the record
The customer asks: Block a recalled batch at every till and store at once, find its stock and the customers it reached, dispose of it with the regulator's visit recorded, and refuse short-dated deliveries
- Verdict: Ready, with limits (6)
- Door: Desk action · area: Stock and buying › Batches and expiry
- Recipe: Expiry and recall: block recalled lots and dispose of them on the record
- Sample: S40 — Expiry and recall (pp_rcl): recalls, disposal on the record, goods-in
- Checked: 2026-10-22 · bench
What you build
A recall notice with a Block these batches button: your service switches the lots off (the till's automatic lot read drops them at once), reads the stock ledger for each store's stock and the sales that reached customers, and writes both onto the notice with a progress record per store. A Disposal Record carries the regulator's visit and locks once it is recorded; a document check on Stock Entry refuses a controlled disposal without it. A document check on Purchase Receipt refuses short-dated lots unless the line carries a Letter of Undertaking with its days, and flags the ERP's own receipts instead. An Expiry Worklist with a Refresh button lists the lots near expiry per store.
Limits
- A Desk delivery or invoice naming a blocked lot by hand still submits until the POS app refuses disabled lots on every stock document.
- An offline till keeps a blocked lot until it syncs; press again after the sync to trace its sales.
- A lot with no expiry date is never blocked by the app (saving it would write a guessed date): enter the pack's date first.
- While the service is down, receipts, stock entries and stock counts wait: all three checks refuse (their declared answer).
- A schedule set only on an item group is not read for the disposal rule.
- Up to 100 lots a notice.
Tell the customer
When the regulator recalls a batch, one press stops it at every online till, tells each store how much it holds and, at consumer depth, lists the sales that reached customers (walk-in sales under the walk-in customer); controlled stock leaves for destruction only with the inspector's visit on record, and a short-dated delivery is refused at the Desk's goods-in (an ERP's is flagged).
What next
- Tell the customer the 6 limits above, and write them into the proposal.
- Follow the recipe: Expiry and recall: block recalled lots and dispose of them on the record.
- Copy the sample: S40 — Expiry and recall (pp_rcl): recalls, disposal on the record, goods-in, and change it.
- Build and test it on your sandbox (request one if you have none; what is on it).
- Run the checks: your own tests, the kit's checks and the money kit's release gate (testing and release).
- Release through the customer's own release gate (14. Testing and release); an app other shops install goes through the App library.
Related needs
- Refuse a batch whose remaining shelf life is below our minimum, unless a named role accepts it — Ready, with limits (4)
- A notification a number of days before a date on a shop's own record, such as a batch's expiry — Ready, with limits (5)
- Mark down perishable stock automatically as its expiry date nears, by our own steps, so it sells before we throw it away — Ready, with limits (11)
- Each pack carries its own printed code; check it when stock is received, moved, counted and sold, and tell a lost pack from a sold one — Ready, with limits (9)
Start a project shortlist with this need · Put it in your blueprint · Every need